Added: synapse/site/3_0_2/userguide/samples/setup/fix.html URL: http://svn.apache.org/viewvc/synapse/site/3_0_2/userguide/samples/setup/fix.html?rev=1909775&view=auto ============================================================================== --- synapse/site/3_0_2/userguide/samples/setup/fix.html (added) +++ synapse/site/3_0_2/userguide/samples/setup/fix.html Fri May 12 16:09:34 2023 @@ -0,0 +1,363 @@ +<!DOCTYPE html> +<!-- + | Generated by Apache Maven Doxia Site Renderer 1.7.4 at 2023-05-04 + | Rendered using Apache Maven Fluido Skin 1.6 +--> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <meta name="Date-Revision-yyyymmdd" content="20230504" /> + <meta http-equiv="Content-Language" content="en" /> + <title>Apache Synapse – Apache Synapse - FIX Setup Guide</title> + <link rel="stylesheet" href="../../../css/apache-maven-fluido-1.6.min.css" /> + <link rel="stylesheet" href="../../../css/site.css" /> + <link rel="stylesheet" href="../../../css/print.css" media="print" /> + <script type="text/javascript" src="../../../js/apache-maven-fluido-1.6.min.js"></script> + </head> + <body class="topBarDisabled"> + <div class="container-fluid"> + <div id="banner"> + <div class="pull-left"><div id="bannerLeft"><h2>Apache Synapse</h2> +</div> +</div> + <div class="pull-right"></div> + <div class="clear"><hr/></div> + </div> + + <div id="breadcrumbs"> + <ul class="breadcrumb"> + <li id="publishDate">Last Published: 2023-05-04<span class="divider">|</span> +</li> + <li id="projectVersion">Version: 3.0.2</li> + </ul> + </div> + <div class="row-fluid"> + <div id="leftColumn" class="span2"> + <div class="well sidebar-nav"> +<ul class="nav nav-list"> + <li class="nav-header">Main Menu</li> + <li><a href="../../../index.html" title="Home"><span class="none"></span>Home</a> </li> + <li><a href="../../../download.html" title="Download"><span class="none"></span>Download</a> </li> + <li><a href="../../../history.html" title="History"><span class="none"></span>History</a> </li> + <li><a href="http://www.apache.org/licenses/LICENSE-2.0" class="externalLink" title="License"><span class="none"></span>License</a> </li> + <li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a> </li> + <li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a> </li> + <li><a href="http://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a> </li> + <li class="nav-header">Documentation</li> + <li><a href="../../../userguide/installation.html" title="Installation Guide"><span class="none"></span>Installation Guide</a> </li> + <li><a href="../../../userguide/quick_start.html" title="Quick Start Guide"><span class="none"></span>Quick Start Guide</a> </li> + <li><a href="../../../userguide/samples/setup/index.html" title="Samples Setup Guide"><span class="none"></span>Samples Setup Guide</a> </li> + <li><a href="../../../userguide/samples.html" title="Samples Catalog"><span class="none"></span>Samples Catalog</a> </li> + <li><a href="../../../userguide/config.html" title="Configuration Language"><span class="none"></span>Configuration Language</a> </li> + <li><a href="../../../userguide/mediators.html" title="Mediators Catalog"><span class="none"></span>Mediators Catalog</a> </li> + <li><a href="../../../userguide/transports.html" title="Transports Catalog"><span class="none"></span>Transports Catalog</a> </li> + <li><a href="../../../userguide/properties.html" title="Properties Catalog"><span class="none"></span>Properties Catalog</a> </li> + <li><a href="../../../userguide/xpath.html" title="XPath functions and Variables"><span class="none"></span>XPath functions and Variables</a> </li> + <li><a href="../../../userguide/extending.html" title="Extending Synapse"><span class="none"></span>Extending Synapse</a> </li> + <li><a href="../../../userguide/template_library.html" title="Synapse Template Libraries"><span class="none"></span>Synapse Template Libraries</a> </li> + <li><a href="../../../userguide/upgrading.html" title="Upgrading"><span class="none"></span>Upgrading</a> </li> + <li><a href="../../../userguide/deployment.html" title="Deployment"><span class="none"></span>Deployment</a> </li> + <li><a href="../../../apidocs/" title="Javadocs"><span class="none"></span>Javadocs</a> </li> + <li><a href="../../../userguide/faq.html" title="FAQ"><span class="none"></span>FAQ</a> </li> + <li class="nav-header">Developer Resources</li> + <li><a href="../../../dev/developer-guide.html" title="Developer Guide"><span class="none"></span>Developer Guide</a> </li> + <li><a href="../../../dev/best-practices.html" title="Development Best Practices"><span class="none"></span>Development Best Practices</a> </li> + <li><a href="../../../dev/release-process.html" title="Release Process"><span class="none"></span>Release Process</a> </li> + <li class="nav-header">Project Details</li> + <li><a href="../../../project-info.html" title="Overview"><span class="none"></span>Overview</a> </li> + <li><a href="../../../mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a> </li> + <li><a href="../../../source-repository.html" title="Source Repository"><span class="none"></span>Source Repository</a> </li> + <li><a href="../../../issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a> </li> + <li><a href="../../../dependency-management.html" title="Dependencies"><span class="none"></span>Dependencies</a> </li> + <li><a href="../../../team-list.html" title="Project Team"><span class="none"></span>Project Team</a> </li> + </ul> + <hr /> + <div id="poweredBy"> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> + <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../../../images/logos/maven-feather.png" /></a> + </div> + </div> + </div> + <div id="bodyColumn" class="span10" > + + + <div class="section"> +<h2><a name="FIX_Setup_Guide"></a>FIX Setup Guide</h2> + +<p> + This document explains how to setup the FIX transport sender and listener + in Synapse as required by the samples. Further it describes how to setup the + sample FIX applications (Executor and Banzai) which are essential for trying + out the FIX samples. + </p> + </div> + +<div class="section"> +<h2><a name="Contents"></a>Contents</h2> + +<ul> + +<li><a href="#intro">Introduction</a></li> + +<li><a href="#pre">Prerequisites</a></li> + +<li><a href="#synapse">Enabling FIX Transport in Synapse</a></li> + +<li><a href="#services">Configuring Services for FIX Transport</a></li> + +<li> + <a href="#samples">Setting Up the Sample FIX Applications</a> + +<ul> + +<li><a href="#exec">Configuring the Executor</a></li> + +<li><a href="#banzai">Configuring Banzai</a></li> + </ul> + </li> + + </ul> + </div> + <a name="intro"></a> +<div class="section" id="intro"> +<h2><a name="Introduction"></a>Introduction</h2> + +<p> + <a class="externalLink" href="http://www.fixprotocol.org">FIX (Financial Information eXchange)</a> + is a domain specific communication protocol widely used in the finance sector for + securities transactions. The protocol specification spans across the application layer + and the session layer of the OSI reference model of networking. Apache Synapse comes + with a FIX transport adapter which enables the Synapse ESB to communicate with FIX + acceptors and initiators. This allows users to seamlessly integrate FIX applications + together and even link FIX applications with other systems that use different protocols. + </p> + +<p> + This article describes how to enable and configure the FIX transport listener and + sender for Apache Synapse. It also describes how to setup various sample FIX applications + required to try out the FIX protocol related examples. + </p> + </div> + <a name="pre"></a> +<div class="section" id="pre"> +<h2><a name="Prerequisites"></a>Prerequisites</h2> + +<p> + The FIX transport adapter of Synapse is built on top of the <a class="externalLink" href="http://www.quickfixj.org">Quickfix/J</a> + open source FIX engine. Therefore the users must deploy the Quickfix/J libraries + into Synapse before using the FIX transport. Also in order to try out the FIX + samples described in this documentation, it is required to have the 2 sample FIX + applications (Banzai and Executor) that come bundled with Quickfix/J. Therefore as + the first step <a class="externalLink" href="http://www.quickfixj.org/downloads/">download</a> the latest + binary distribution of Quickfix/J and extract the downloaded archive to a suitable + location on the local disk (let's refer to this location as QFJ_HOME). + </p> + +<p> + All the necessary Quickfix/J libraries are available in the Quickfix/J binary + distribution. You have to copy the following jar files from Quickfix/J installation + to the 'lib' directory of Synapse. + </p> + +<ul> + +<li>quickfixj-core.jar</li> + +<li>quickfixj-msg-fix40.jar</li> + +<li>quickfixj-msg-fix41.jar</li> + +<li>quickfixj-msg-fix42.jar</li> + +<li>quickfixj-msg-fix43.jar</li> + +<li>quickfixj-msg-fix44.jar</li> + +<li>mina-core.jar</li> + +<li>slf4j-api.jar</li> + </ul> + +<p> + The last 2 jar files can be found in the QFJ_HOME/bin directory and all other + files should be available in the QFJ_HOME itself. + </p> + </div> + <a name="synapse"></a> +<div class="section" id="synapse"> +<h2><a name="Enabling_FIX_Transport_in_Synapse"></a>Enabling FIX Transport in Synapse</h2> + +<p> + FIX transport listener and the FIX transport sender of Synapse can be enabled by + uncommenting the following sections in the repository/conf/axis2.xml file. + </p> + +<div class="xmlConf"><transportReceiver name="fix" class="org.apache.synapse.transport.fix.FIXTransportListener"/></div> + +<div class="xmlConf"><transportSender name="fix" class="org.apache.synapse.transport.fix.FIXTransportSender"/></div> + +<p> + This will initialize the FIX transport adapter and have it up and running to be + used by the proxy services. However some additional setting should be applied at + the service level before a service can make use of the FIX transport. + </p> + </div> + <a name="services"></a> +<div class="section" id="services"> +<h2><a name="Configuring_Services_for_FIX_Transport"></a>Configuring Services for FIX Transport</h2> + +<p> + When a service needs to be exposed over the FIX transport, we should add the + following parameter to the service configuration. + </p> + +<div class="xmlConf"><parameter name="transport.fix.AcceptorConfigURL">url</parameter></div> + +<p> + The value of this parameter must be a valid URL which points to a Quickfix/J session + configuration file. All the FIX sample configurations are already equipped with this + parameter and they are pointing to the sample Quickfix/J configuration files that + comes with Synapse. These files can be found in the repository/sample/resources/fix + directory. One such configuration file (fix-synapse.cfg) is shown below. + </p> + +<div class="consoleOutput">[default] +FileStorePath=repository/fix/store/acceptor +ConnectionType=acceptor +StartTime=00:00:00 +EndTime=00:00:00 +HeartBtInt=30 +ValidOrderTypes=1,2,F +SenderCompID=EXEC +TargetCompID=SYNAPSE +UseDataDictionary=Y +DefaultMarketPrice=12.30 + +[session] +BeginString=FIX.4.0 +SocketAcceptPort=9876</div> + +<p> + One of the most important parameters in this configuration is the SocketAcceptPort + setting. This defines the port used by the Synapse proxy service to receive + incoming FIX messages. + </p> + +<p> + As far as the FIX samples are considered you don't have to make any changes to + these Quickfix/J configuration files or the Synapse sample configurations. Default + settings should work out of the box without any issues. However some samples may + require you to make minor changes to these files. + </p> + </div> + <a name="samples"></a> +<div class="section" id="samples"> +<h2><a name="Setting_Up_the_Sample_FIX_Applications"></a>Setting Up the Sample FIX Applications</h2> + +<p> + Two sample FIX applications are available in the Quickfix/J binray distribution + which can be used to send and receive FIX messages. By default these applications + are configured to directly communicate with each other. So we should make a few + modifications to the configuration to get them to communicate with Synapse. The + binaries of these sample programs are available in the quickfixj-examples.jar file + in QFJ_HOME. Startup scripts needed to run them can be found in the QFJ_HOME/bin + directory. + </p> + <a name="exec"></a> +<div class="section" id="exec"> +<h3><a name="Configuring_the_Executor"></a>Configuring the Executor</h3> + +<p> + Executor is the sample acceptor program. To configure this application to + receive messages from Synapse, put the following entries to a file named + 'executor.cfg'. + </p> + +<div class="consoleOutput">[default] +FileStorePath=examples/target/data/executor +ConnectionType=acceptor +StartTime=00:00:00 +EndTime=00:00:00 +HeartBtInt=30 +ValidOrderTypes=1,2,F +SenderCompID=EXEC +TargetCompID=SYNAPSE +UseDataDictionary=Y +DefaultMarketPrice=12.30 + +[session] +BeginString=FIX.4.0 +SocketAcceptPort=19876</div> + +<p> + Note that TargetCompID parameter has been set to 'SYNAPSE' and the port number + has been set to 9876. You can launch the Executor using the above configuration + as follows. + </p> + +<div class="command">Unix/Linux: sh executor.sh <path to executor.cfg><br /> +Windows: executor.bat <path to executor.cfg></div> + +<p> + For some samples you will have to make some minor modifications to this + configuration file. + </p> + </div> + <a name="banzai"></a> +<div class="section" id="banzai"> +<h3><a name="Configuring_Banzai"></a>Configuring Banzai</h3> + +<p> + Banzai is a sample FIX initiator that comes with Quickfix/J. This can be + used to send FIX messages to a defined FIX acceptor. In case of samples, + Synapse will act as the acceptor. In order to send messages to Synapse, we + should start Banzai using the following configuration. + </p> + +<div class="consoleOutput">[default] +FileStorePath=examples/target/data/banzai +ConnectionType=initiator +SenderCompID=BANZAI +TargetCompID=SYNAPSE +SocketConnectHost=localhost +StartTime=00:00:00 +EndTime=00:00:00 +HeartBtInt=30 +ReconnectInterval=5 + +[session] +BeginString=FIX.4.0 +SocketConnectPort=9876</div> + +<p> + Note that TargetCompID has been set to 'SYNAPSE' and the socket connect port + is specified to be 9876, which is the port used by Synapse. To start Banzai + with this configuration, save the above in a file named 'banzai.cfg' and + launch the sample application as follows. + </p> + +<div class="command">Unix/Linux: sh banzai.sh <path to banzai.cfg><br /> +Windows: banzai.bat <path to banzai.cfg></div> + </div> + </div> + + + </div> + </div> + </div> + <hr/> + <footer> + <div class="container-fluid"> + <div class="row-fluid"> + <p>Copyright ©2005–2023 +<a href="http://www.apache.org/">Apache Software Foundation</a>. +All rights reserved.</p> + </div> + </div> + </footer> + </body> +</html>
Added: synapse/site/3_0_2/userguide/samples/setup/index.html URL: http://svn.apache.org/viewvc/synapse/site/3_0_2/userguide/samples/setup/index.html?rev=1909775&view=auto ============================================================================== --- synapse/site/3_0_2/userguide/samples/setup/index.html (added) +++ synapse/site/3_0_2/userguide/samples/setup/index.html Fri May 12 16:09:34 2023 @@ -0,0 +1,604 @@ +<!DOCTYPE html> +<!-- + | Generated by Apache Maven Doxia Site Renderer 1.7.4 at 2023-05-04 + | Rendered using Apache Maven Fluido Skin 1.6 +--> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <meta name="Date-Revision-yyyymmdd" content="20230504" /> + <meta http-equiv="Content-Language" content="en" /> + <title>Apache Synapse – Apache Synapse - Samples Setup Guide</title> + <link rel="stylesheet" href="../../../css/apache-maven-fluido-1.6.min.css" /> + <link rel="stylesheet" href="../../../css/site.css" /> + <link rel="stylesheet" href="../../../css/print.css" media="print" /> + <script type="text/javascript" src="../../../js/apache-maven-fluido-1.6.min.js"></script> + </head> + <body class="topBarDisabled"> + <div class="container-fluid"> + <div id="banner"> + <div class="pull-left"><div id="bannerLeft"><h2>Apache Synapse</h2> +</div> +</div> + <div class="pull-right"></div> + <div class="clear"><hr/></div> + </div> + + <div id="breadcrumbs"> + <ul class="breadcrumb"> + <li id="publishDate">Last Published: 2023-05-04<span class="divider">|</span> +</li> + <li id="projectVersion">Version: 3.0.2</li> + </ul> + </div> + <div class="row-fluid"> + <div id="leftColumn" class="span2"> + <div class="well sidebar-nav"> +<ul class="nav nav-list"> + <li class="nav-header">Main Menu</li> + <li><a href="../../../index.html" title="Home"><span class="none"></span>Home</a> </li> + <li><a href="../../../download.html" title="Download"><span class="none"></span>Download</a> </li> + <li><a href="../../../history.html" title="History"><span class="none"></span>History</a> </li> + <li><a href="http://www.apache.org/licenses/LICENSE-2.0" class="externalLink" title="License"><span class="none"></span>License</a> </li> + <li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a> </li> + <li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a> </li> + <li><a href="http://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a> </li> + <li class="nav-header">Documentation</li> + <li><a href="../../../userguide/installation.html" title="Installation Guide"><span class="none"></span>Installation Guide</a> </li> + <li><a href="../../../userguide/quick_start.html" title="Quick Start Guide"><span class="none"></span>Quick Start Guide</a> </li> + <li class="active"><a href="#"><span class="none"></span>Samples Setup Guide</a> + </li> + <li><a href="../../../userguide/samples.html" title="Samples Catalog"><span class="none"></span>Samples Catalog</a> </li> + <li><a href="../../../userguide/config.html" title="Configuration Language"><span class="none"></span>Configuration Language</a> </li> + <li><a href="../../../userguide/mediators.html" title="Mediators Catalog"><span class="none"></span>Mediators Catalog</a> </li> + <li><a href="../../../userguide/transports.html" title="Transports Catalog"><span class="none"></span>Transports Catalog</a> </li> + <li><a href="../../../userguide/properties.html" title="Properties Catalog"><span class="none"></span>Properties Catalog</a> </li> + <li><a href="../../../userguide/xpath.html" title="XPath functions and Variables"><span class="none"></span>XPath functions and Variables</a> </li> + <li><a href="../../../userguide/extending.html" title="Extending Synapse"><span class="none"></span>Extending Synapse</a> </li> + <li><a href="../../../userguide/template_library.html" title="Synapse Template Libraries"><span class="none"></span>Synapse Template Libraries</a> </li> + <li><a href="../../../userguide/upgrading.html" title="Upgrading"><span class="none"></span>Upgrading</a> </li> + <li><a href="../../../userguide/deployment.html" title="Deployment"><span class="none"></span>Deployment</a> </li> + <li><a href="../../../apidocs/" title="Javadocs"><span class="none"></span>Javadocs</a> </li> + <li><a href="../../../userguide/faq.html" title="FAQ"><span class="none"></span>FAQ</a> </li> + <li class="nav-header">Developer Resources</li> + <li><a href="../../../dev/developer-guide.html" title="Developer Guide"><span class="none"></span>Developer Guide</a> </li> + <li><a href="../../../dev/best-practices.html" title="Development Best Practices"><span class="none"></span>Development Best Practices</a> </li> + <li><a href="../../../dev/release-process.html" title="Release Process"><span class="none"></span>Release Process</a> </li> + <li class="nav-header">Project Details</li> + <li><a href="../../../project-info.html" title="Overview"><span class="none"></span>Overview</a> </li> + <li><a href="../../../mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a> </li> + <li><a href="../../../source-repository.html" title="Source Repository"><span class="none"></span>Source Repository</a> </li> + <li><a href="../../../issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a> </li> + <li><a href="../../../dependency-management.html" title="Dependencies"><span class="none"></span>Dependencies</a> </li> + <li><a href="../../../team-list.html" title="Project Team"><span class="none"></span>Project Team</a> </li> + </ul> + <hr /> + <div id="poweredBy"> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> + <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../../../images/logos/maven-feather.png" /></a> + </div> + </div> + </div> + <div id="bodyColumn" class="span10" > + + + <div class="section"> +<h2><a name="Introduction"></a>Introduction</h2> + +<p> + Apache Synapse comes with a collection of working examples that demonstrates the + basic features of the Synapse ESB. In addition to the sample configurations, a set + of sample client applications and services are provided which can be used to try out + each of the examples. Most examples are self contained and can be run without any third + party applications or libraries. A set of Ant build files and scripts are provided + to make setting up the examples easier. A few examples however require deploying + certain external libraries and using third party client applications. + </p> + +<p> + The main objectives of this article are: + </p> +<ul> + +<li>Introduce the concept of Synapse samples</li> + +<li>Describe how to setup the environment for running samples</li> + +<li>Describe how to run the sample client applications and services</li> + +<li>Describe how to deploy third party libraries when required</li> + </ul> + + </div> + +<div class="section"> +<h2><a name="Prerequisites"></a>Prerequisites</h2> + +<p> + Following applications are required to run any sample that comes with Synapse. + Please make sure you have them properly installed and configured in your system. + </p> + +<ul> + +<li>A Java runtime - JDK or JRE of version 1.6.0_23 or higher + </li> + +<li><a class="externalLink" href="http://ant.apache.org">Apache Ant</a> version 1.6.5 or higher</li> + +<li> + A command line interface such as 'Command Prompt' on Windows and the Bash shell + on Unix/Linux systems + </li> + </ul> + +<p> + When installing Java, make sure you setup the 'JAVA_HOME' environment variable + properly. Also adding the JAVA_HOME/bin directory to the system path will make + running the samples much easier. + </p> + +<p> + In addition to the applications listed above, some samples require setting up few + other external resources such as JMS brokers and database engines. You can find the + relevant documentation under the '<a href="#Setting_Up_Additional_Resources">Setting Up Additional Features</a>' + section. + </p> + +<p> + It is also advisable to run Synapse in the debug mode when trying out the example + configurations. This will give you important runtime status information that can be + used to better understand the functionality of Synapse. To enable the debug mode, + open up the lib/log4j.properties file and specify 'DEBUG' logging mode for the + 'org.apache.synapse' package. + </p> + +<div class="consoleOutput">log4j.category.org.apache.synapse=DEBUG</div> + </div> + +<div class="section"> +<h2><a name="Understanding_the_Samples"></a>Understanding the Samples</h2> + +<p> + A Synapse sample scenario is generally comprised of three elements. + </p> + +<ul> + +<li> + Sample Synapse configuration (an XML configuration file given as the input + of Synapse) + </li> + +<li> + Sample service (an Axis2 based Web Service to which Synapse will send messages) + </li> + +<li> + Sample client (an Axis2 based service client which is used to send requests to + Synapse) + </li> + </ul> + +<div class="section"> +<h3><a name="Sample_Synapse_Configurations"></a>Sample Synapse Configurations</h3> + +<p> + All the sample Synapse configurations are housed under the repository/conf/sample + directory. These configuration files are named in the following format. + </p> + +<div class="consoleOutput">synapse_sample_n.xml</div> + +<p> + Here 'n' is a number which uniquely identifies the sample. This number can be passed + as an argument to the Synapse startup script in order to start Synapse with a particular + sample configuration. For an example to start Synapse with the configuration numbered + 100 (ie synapse_sample_100.xml) run one of the following commands in the command line + interface. + </p> + +<div class="command"> + Unix/Linux: sh synapse.sh -sample 100<br /> + Windows: synapse.bat -sample 100 + </div> + </div> + +<div class="section"> +<h3><a name="Sample_Services"></a>Sample Services</h3> + +<p> + All the source of example services can be found in the samples/axis2Server/src directory. + You will find the source code for following services in this directory. + </p> + +<table border="0" class="table table-striped"> + +<tr class="a"> + +<th>Service</th> + +<th>Description</th> + </tr> + +<tr class="b"> + +<td>SimpleStockQuoteService</td> + +<td> + This service has four operations; getQuote (in-out), getFullQuote(in-out), + getMarketActivity(in-out) and placeOrder (in-only). The getQuote operation + will generate a sample stock quote for a given symbol. The getFullQuote + operation will generate a history of stock quotes for the symbol for a + number of days, and the getMarketActivity operation returns stock quotes + for a list of given symbols. The placeOrder operation will accept a one + way message for an order. + </td> + </tr> + +<tr class="a"> + +<td>SecureStockQuoteService</td> + +<td> + This service is a clone of the SimpleStockQuoteService, but has + WS-Security enabled and an attached security policy for signing and + encryption of messages. + </td> + </tr> + +<tr class="b"> + +<td>ReliableStockQuoteService</td> + +<td> + This service is a clone of the SimpleStockQuoteService, but has + WS-ReliableMessaging enabled. + </td> + </tr> + +<tr class="a"> + +<td>MTOMSwASampleService</td> + +<td> + This service has three operations uploadFileUsingMTOM(in-out), + uploadFileUsingSwA(in-out) and oneWayUploadUsingMTOM(in-only) and + demonstrates the use of MTOM and SwA. The uploadFileUsingMTOM and + uploadFileUsingSwA operations accept a binary image from the SOAP request + as MTOM and SwA, and returns this image back again as the response, while + the oneWayUploadUsingMTOM saves the request message to disk. + </td> + </tr> + +<tr class="b"> + +<td>LoadbalanceFailoverService</td> + +<td> + A simple web service that can be used to test state less as well as + session aware load balancing scenarios. + </td> + </tr> + </table> + +<p> + You can compile and deploy any of these services into the provided sample Axis2 + server by switching to the corresponding directory and invoking 'ant'. For an + example to setup the SimpleStockQuoteService, switch to the + samples/axis2Server/src/SimpleStockQuoteService directory and run the 'ant' + command. You will get an output similar to the following. + </p> + +<div class="consoleOutput">user@host:/tmp/synapse-1.1/samples/axis2Server/src/SimpleStockQuoteService$ ant +Buildfile: build.xml +... +build-service: + .... + [jar] Building jar: /tmp/synapse-1.1/samples/axis2Server/repository/services/SimpleStockQuoteService.aar + +BUILD SUCCESSFUL +Total time: 3 seconds</div> + +<p> + To start the Axis2 server, go to the samples/axis2Server directory and execute + the axis2server.sh or axis2server.bat script. This starts the Axis2 server with + the HTTP transport listener on port 9000 and HTTPS on port 9002 respectively. + For some samples it is required to enable additional transport listeners for the + sample Axis2 server. The resources listed under '<a href="#Setting_Up_Additional_Resources">Setting Up Additional Features'</a> + section provides more information on this. + </p> + </div> + +<div class="section"> +<h3><a name="Sample_Client_Applications"></a>Sample Client Applications</h3> + +<p> + The client applications that come with Synapse are able to send SOAP, REST or + POX messages over transports like HTTP/S and JMS. They also support WS-Addressing, + WS-Security and WS-ReliableMessaging. Some sample clients can be used to send + pure binary or plain text messages. They are also capable of sending optimized + binary content using MTOM or SwA. Most sample scenarios involve invoking one + of these clients to send messages to Synapse. Synapse will then mediate those + requests and forward them to the sample services deployed on Axis2. + </p> + +<p> + The sample clients can be executed from the samples/axis2Client directory + using the provided ant script. Simply executing 'ant' displays the available + clients and some of the options used to configure them. The sample clients + available are further described in the next section. + </p> + </div> + </div> + +<div class="section"> +<h2><a name="Sample_Axis2_Clients"></a>Sample Axis2 Clients</h2> + +<div class="section"> +<h3><a name="Stock_Quote_Client"></a>Stock Quote Client</h3> + +<p> + This is a simple SOAP client that can send stock quote requests, receive + generated quotes and display the last sale price for a stock symbol. + </p> + +<div class="command">ant stockquote [-Dsymbol=IBM|MSFT|SUN|..] + [-Dmode=quote | customquote | fullquote | placeorder | marketactivity] + [-Dsoapver=soap11 | soap12] + [-Daddurl=http://localhost:9000/services/SimpleStockQuoteService] + [-Dtrpurl=http://localhost:8280] [-Dprxurl=http://localhost:8280] + [-Dpolicy=../../repository/conf/sample/resources/policy/policy_1.xml]</div> + +<p> + The client is able to operate in the following modes, and send the payloads + listed below as SOAP messages. + </p> + +<table border="0" class="table table-striped"> + +<tr class="a"> + +<th>Mode</th> + +<th>Payload</th> + +<th>Description</th> + </tr> + +<tr class="b"> + +<td>quote</td> + +<td> + +<div class="xmlConf"><m:getQuote xmlns:m="http://services.samples"> + <m:request> + <m:symbol>IBM</m:symbol> + </m:request> +</m:getQuote></div> + </td> + +<td> + Sends a quote request for a single stock symbol. The response + contains the last sales price for the stock which will be displayed on + console. + </td> + </tr> + +<tr class="a"> + +<td>customquote</td> + +<td> + +<div class="xmlConf"><m0:checkPriceRequest xmlns:m0="http://www.apache-synapse.org/test"> + <m0:Code>symbol</m0:Code> +</m0:checkPriceRequest></div> + </td> + +<td> + Sends a quote request in a custom format. Synapse will transform this + custom request to the standard stock quote request format and send it to + the Axis2 service. Upon receipt of the response, it will be transformed + again to a custom response format and returned to the client, which will + then display the last sales price. + </td> + </tr> + +<tr class="b"> + +<td>fullquote</td> + +<td> + +<div class="xmlConf"><m:getFullQuote xmlns:m="http://services.samples"> + <m:request> + <m:symbol>IBM</m:symbol> + </m:request> +</m:getFullQuote></div> + </td> + +<td> + Gets quote reports for a stock symbol over a number of days (i.e. last 100 + days of the year). + </td> + </tr> + +<tr class="a"> + +<td>placeorder</td> + +<td> +<div class="xmlConf"><m:placeOrder xmlns:m="http://services.samples"> + <m:order> + <m:price>3.141593E0</m:price> + <m:quantity>4</m:quantity> + <m:symbol>IBM</m:symbol> + </m:order> +</m:placeOrder></div></td> + +<td> + Places an order for stocks using a one way request. + </td> + </tr> + +<tr class="b"> + +<td>marketactivity</td> + +<td> +<div class="xmlConf"><m:getMarketActivity xmlns:m="http://services.samples"> + <m:request> + <m:symbol>IBM</m:symbol> + ... + <m:symbol>MSFT</m:symbol> + </m:request> +</m:getMarketActivity></div></td> + +<td> + Gets a market activity report for the day (i.e. quotes for multiple + symbols) + </td> + </tr> + </table> + +<p> + To run the stock quote client in a particular mode, pass the name of the mode + as a system property as follows. + </p> + +<div class="command">ant stockquote -Dmode=placeorder</div> + +<p> + Behavior of the sample Axis2 client can be further customized by using the 'addurl', + 'trpurl' and 'prxurl' parameters. These parameters enable the following modes of + operation. + </p> + +<div class="section"> +<div class="section"> +<h5><a name="Smart_Client_Mode"></a>Smart Client Mode</h5> + +<p> + The 'addurl' property sets the WS-Addressing EPR, and the 'trpurl' sets a + transport URL for a message. Thus by specifying both of these properties, + the client can operate in the 'smart client' mode, where the addressing EPR can + specify the ultimate receiver, while the transport URL set to Synapse will ensure + that any necessary mediation takes place before the message is delivered to the + ultimate receiver. + </p> + +<div class="command">ant stockquote -Daddurl=<addressingEPR> -Dtrpurl=<synapse></div> + </div> +<div class="section"> +<h5><a name="GatewayDumb_Client_Mode"></a>Gateway/Dumb Client Mode</h5> + +<p> + By specifying only a transport URL, the client operates in the 'dumb client' + mode, where it sends the message to Synapse and depends on the rules configured + in Synapse for proper mediation and routing of the message to the ultimate + destination. + </p> + +<div class="command">ant stockquote -Dtrpurl=<synapse></div> + </div> +<div class="section"> +<h5><a name="Proxy_Client_Mode"></a>Proxy Client Mode</h5> + +<p> + In this mode, the client uses the 'prxurl' as a HTTP proxy to send the request. + Thus by setting the 'prxurl' to Synapse, the client can ensure that the message + will reach Synapse for mediation. The client can optionally set a WS-Addressing + EPR if required. + </p> + +<div class="command">ant stockquote -Dprxurl=<synapse> [-Daddurl=<addressingEPR>]</div> + </div></div></div> + +<div class="section"> +<h3><a name="Generic_JMS_Client"></a>Generic JMS Client</h3> + +<p> + The JMS client is able to send plain text, plain binary content or POX content + by directly publishing a JMS message to the specified destination. The JMS + destination name should be specified with the 'jms_dest' property. The 'jms_type' + property can specify 'text', 'binary' or 'pox' to specify the type of message + payload. + </p> + +<p> + The plain text payload for a 'text' message can be specified through the 'payload' + property. For binary messages, the 'payload' property will contain the path to + the binary file. For POX messages, the 'payload' property will hold a stock + symbol name to be used within the POX request for stock order placement requests. + </p> + +<div class="command">ant jmsclient -Djms_type=text -Djms_dest=dynamicQueues/JMSTextProxy -Djms_payload="24.34 100 IBM" +ant jmsclient -Djms_type=pox -Djms_dest=dynamicQueues/JMSPoxProxy -Djms_payload=MSFT +ant jmsclient -Djms_type=binary -Djms_dest=dynamicQueues/JMSFileUploadProxy + -Djms_payload=./../../repository/conf/sample/resources/mtom/asf-logo.gif</div> + +<p> + The JMS client assumes the existence of a default ActiveMQ (v4.1.0 or above) + installation on the local machine. Refer JMS setup guide for more details. + </p> + </div> + +<div class="section"> +<h3><a name="MTOMSwA_Client"></a>MTOM/SwA Client</h3> + +<p> + The MTOM / SwA client is able to send a binary image file as a MTOM or SwA + optimized message, and receive the same file again through the response and save + it as a temporary file. The 'opt_mode' can specify 'mtom' or 'swa' respectively + for the above mentioned optimizations. Optionally the path to a custom file can + be specified through the 'opt_file' property, and the destination address can be + changed through the 'opt_url' property if required. + </p> + +<div class="command">ant optimizeclient -Dopt_mode=[mtom | swa]</div> + </div> + </div> + +<div class="section"> +<h2><a name="Setting_Up_Additional_Features"></a>Setting Up Additional Features</h2> + +<ul> + +<li><a href="jms.html">JMS Setup Guide</a></li> + +<li><a href="fix.html">FIX Setup Guide</a></li> + +<li><a href="tcp_udp.html">TCP/UDP Setup Guide</a></li> + +<li><a href="db.html">Database Setup Guide</a></li> + +<li><a href="script.html">Script Setup Guide</a></li> + +<li><a href="script.html#json-syn3">JSON Setup Guide</a></li> + +<li><a href="mail.html">E-Mail Setup Guide</a></li> + </ul> + </div> + + + </div> + </div> + </div> + <hr/> + <footer> + <div class="container-fluid"> + <div class="row-fluid"> + <p>Copyright ©2005–2023 +<a href="http://www.apache.org/">Apache Software Foundation</a>. +All rights reserved.</p> + </div> + </div> + </footer> + </body> +</html> Added: synapse/site/3_0_2/userguide/samples/setup/jms.html URL: http://svn.apache.org/viewvc/synapse/site/3_0_2/userguide/samples/setup/jms.html?rev=1909775&view=auto ============================================================================== --- synapse/site/3_0_2/userguide/samples/setup/jms.html (added) +++ synapse/site/3_0_2/userguide/samples/setup/jms.html Fri May 12 16:09:34 2023 @@ -0,0 +1,367 @@ +<!DOCTYPE html> +<!-- + | Generated by Apache Maven Doxia Site Renderer 1.7.4 at 2023-05-04 + | Rendered using Apache Maven Fluido Skin 1.6 +--> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <meta name="Date-Revision-yyyymmdd" content="20230504" /> + <meta http-equiv="Content-Language" content="en" /> + <title>Apache Synapse – Apache Synapse - JMS Setup Guide</title> + <link rel="stylesheet" href="../../../css/apache-maven-fluido-1.6.min.css" /> + <link rel="stylesheet" href="../../../css/site.css" /> + <link rel="stylesheet" href="../../../css/print.css" media="print" /> + <script type="text/javascript" src="../../../js/apache-maven-fluido-1.6.min.js"></script> + </head> + <body class="topBarDisabled"> + <div class="container-fluid"> + <div id="banner"> + <div class="pull-left"><div id="bannerLeft"><h2>Apache Synapse</h2> +</div> +</div> + <div class="pull-right"></div> + <div class="clear"><hr/></div> + </div> + + <div id="breadcrumbs"> + <ul class="breadcrumb"> + <li id="publishDate">Last Published: 2023-05-04<span class="divider">|</span> +</li> + <li id="projectVersion">Version: 3.0.2</li> + </ul> + </div> + <div class="row-fluid"> + <div id="leftColumn" class="span2"> + <div class="well sidebar-nav"> +<ul class="nav nav-list"> + <li class="nav-header">Main Menu</li> + <li><a href="../../../index.html" title="Home"><span class="none"></span>Home</a> </li> + <li><a href="../../../download.html" title="Download"><span class="none"></span>Download</a> </li> + <li><a href="../../../history.html" title="History"><span class="none"></span>History</a> </li> + <li><a href="http://www.apache.org/licenses/LICENSE-2.0" class="externalLink" title="License"><span class="none"></span>License</a> </li> + <li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a> </li> + <li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a> </li> + <li><a href="http://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a> </li> + <li class="nav-header">Documentation</li> + <li><a href="../../../userguide/installation.html" title="Installation Guide"><span class="none"></span>Installation Guide</a> </li> + <li><a href="../../../userguide/quick_start.html" title="Quick Start Guide"><span class="none"></span>Quick Start Guide</a> </li> + <li><a href="../../../userguide/samples/setup/index.html" title="Samples Setup Guide"><span class="none"></span>Samples Setup Guide</a> </li> + <li><a href="../../../userguide/samples.html" title="Samples Catalog"><span class="none"></span>Samples Catalog</a> </li> + <li><a href="../../../userguide/config.html" title="Configuration Language"><span class="none"></span>Configuration Language</a> </li> + <li><a href="../../../userguide/mediators.html" title="Mediators Catalog"><span class="none"></span>Mediators Catalog</a> </li> + <li><a href="../../../userguide/transports.html" title="Transports Catalog"><span class="none"></span>Transports Catalog</a> </li> + <li><a href="../../../userguide/properties.html" title="Properties Catalog"><span class="none"></span>Properties Catalog</a> </li> + <li><a href="../../../userguide/xpath.html" title="XPath functions and Variables"><span class="none"></span>XPath functions and Variables</a> </li> + <li><a href="../../../userguide/extending.html" title="Extending Synapse"><span class="none"></span>Extending Synapse</a> </li> + <li><a href="../../../userguide/template_library.html" title="Synapse Template Libraries"><span class="none"></span>Synapse Template Libraries</a> </li> + <li><a href="../../../userguide/upgrading.html" title="Upgrading"><span class="none"></span>Upgrading</a> </li> + <li><a href="../../../userguide/deployment.html" title="Deployment"><span class="none"></span>Deployment</a> </li> + <li><a href="../../../apidocs/" title="Javadocs"><span class="none"></span>Javadocs</a> </li> + <li><a href="../../../userguide/faq.html" title="FAQ"><span class="none"></span>FAQ</a> </li> + <li class="nav-header">Developer Resources</li> + <li><a href="../../../dev/developer-guide.html" title="Developer Guide"><span class="none"></span>Developer Guide</a> </li> + <li><a href="../../../dev/best-practices.html" title="Development Best Practices"><span class="none"></span>Development Best Practices</a> </li> + <li><a href="../../../dev/release-process.html" title="Release Process"><span class="none"></span>Release Process</a> </li> + <li class="nav-header">Project Details</li> + <li><a href="../../../project-info.html" title="Overview"><span class="none"></span>Overview</a> </li> + <li><a href="../../../mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a> </li> + <li><a href="../../../source-repository.html" title="Source Repository"><span class="none"></span>Source Repository</a> </li> + <li><a href="../../../issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a> </li> + <li><a href="../../../dependency-management.html" title="Dependencies"><span class="none"></span>Dependencies</a> </li> + <li><a href="../../../team-list.html" title="Project Team"><span class="none"></span>Project Team</a> </li> + </ul> + <hr /> + <div id="poweredBy"> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> + <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../../../images/logos/maven-feather.png" /></a> + </div> + </div> + </div> + <div id="bodyColumn" class="span10" > + + + <div class="section"> +<h2><a name="JMS_Setup_Guide"></a>JMS Setup Guide</h2> + +<p> + This document explains how to setup the JMS transport sender and listener + as required by the samples. An Apache ActiveMQ instance is used as the JMS + provider for the samples. + </p> + </div> + +<div class="section"> +<h2><a name="Contents"></a>Contents</h2> + +<ul> + +<li><a href="#intro">Introduction</a></li> + +<li><a href="#pre">Prerequisites</a></li> + +<li> + <a href="#synapse">Enabling JMS Support in Synapse</a> + +<ul> + +<li><a href="#listener">Enabling the JMS Listener</a></li> + +<li><a href="#sender">Enabling the JMS Sender</a></li> + </ul> + </li> + +<li><a href="#server">Enabling JMS Support in Axis2 Server</a></li> + +<li><a href="#client">Enabling JMS Support in Axis2 Client</a></li> + +<li><a href="#amqp">Configure Synapse for AMQP Transport</a></li> + </ul> + </div> + <a name="intro"></a> +<div class="section" id="intro"> +<h2><a name="Introduction"></a>Introduction</h2> + +<p> + Apache Synapse has exceptional support for JMS (Java Message Service). It uses JNDI + to connect to JMS brokers, and therefore works with any JMS provider that supports + JNDI. Synapse has been successfully tested with the following well-known JMS + providers. + </p> + +<ul> + +<li>Apache ActiveMQ</li> + +<li>Apache Qpid (AMQP)</li> + +<li>IBM WebsphereMQ</li> + +<li>SwiftMQ</li> + +<li>WebLogic</li> + </ul> + +<p> + All the JMS related samples that come with Synapse assumes <a class="externalLink" href="http://activemq.apache.org">ActiveMQ</a> + to be the JMS broker. But they can be executed with any other JMS provider by making + a few simple changes to the JMS transport configuration in Synapse. + </p> + +<p> + This article explains how to enable and setup the JMS transport for Synapse, the sample + Axis2 server and the sample client programs. Since the samples are mainly focusing + on ActiveMQ, much of this discussion will also be biased towards Apache ActiveMQ. + </p> + </div> + <a name="pre"></a> +<div class="section" id="pre"> +<h2><a name="Prerequisites"></a>Prerequisites</h2> + +<p> + First we need to install and start a JMS broker. The actual installation procedure + of the JMS broker may vary depending on the broker application. If ActiveMQ is used + as the JMS broker, you can install and run the broker by following 3 simple steps + given below. + </p> + +<ol style="list-style-type: decimal"> + +<li><a class="externalLink" href="http://activemq.apache.org/download.html">Download</a> the latest Apache ActiveMQ binary distribution</li> + +<li>Extract the downloaded archive to a suitable location on the local disk</li> + +<li>Switch to the 'bin' directory of the installation and execute the startup script</li> + </ol> + +<p> + Next we need to deploy the JMS client libraries into Synapse. Client libraries are + also specific to the JMS broker being used. These jar files are usually available in + the binary distribution of the JMS broker. Third party libraries such as JMS client + libraries are deployed into Synapse by simply copying them into the 'lib' directory + of Synapse. Therefore if we are to use ActiveMQ as the JMS broker, the following jar + files which can be found in the 'lib' directory of ActiveMQ installation, should be + copied into the 'lib' directory of Synapse. + </p> + +<p> ActiveMQ 5.8.0 and above </p> + +<ul> + +<li>activemq-broker-x.x.x.jar</li> + +<li>activemq-client-x.x.x.jar</li> + +<li>activemq-kahadb-store-x.x.x.jar </li> + +<li>geronimo-jms_1.1_spec-1.1.1.jar</li> + +<li>geronimo-j2ee-management_1.1_spec-1.0.1.jar</li> + +<li>geronimo-jta_1.0.1B_spec-1.0.1.jar</li> + +<li>hawtbuf-1.9.jar</li> + +<li>Slf4j-api-1.6.6.jar</li> + +<li>activeio-core-x.x.x.jar (available in AMQ_HOME/lib/optional folder)</li> + </ul> + + +<p> Earlier version of ActiveMQ </p> + +<ul> + +<li>activemq-core-x.x.x.jar</li> + +<li>geronimo-j2ee-management_1.0_spec-1.0.jar</li> + +<li>geronimo-jms_1.1_spec-1.1.1.jar</li> + </ul> + +<p> + Now we are all set to enable the JMS transport receiver and sender for Synapse and + other sample applications. + </p> + </div> + <a name="synapse"></a> +<div class="section" id="synapse"> +<h2><a name="Enabling_JMS_Support_in_Synapse"></a>Enabling JMS Support in Synapse</h2> + +<p> + The JMS transport of Synapse consists of two main components. + </p> + +<ul> + +<li>JMS transport receiver (JMS listener)</li> + +<li>JMS transport sender (JMS sender)</li> + </ul> + <a name="listener"></a> +<div class="section" id="listener"> +<h3><a name="Enabling_the_JMS_Listener"></a>Enabling the JMS Listener</h3> + +<p> + If we want Synapse to receive messages from a JMS destination, then we should enable + the JMS transport receiver of Synapse. This can be done by editing the axis2.xml file + in the repository/conf directory and uncommenting the following XML fragment which + defines the JMS transport receiver configuration. + </p> + +<div class="xmlConf"><!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)--> +<transportReceiver name="jms" class="org.apache.synapse.transport.jms.JMSListener"> + <parameter name="myTopicConnectionFactory" locked="false"> + <parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter> + <parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter> + <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">TopicConnectionFactory</parameter> + </parameter> + + <parameter name="myQueueConnectionFactory" locked="false"> + <parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter> + <parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter> + <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter> + </parameter> + + <parameter name="default" locked="false"> + <parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter> + <parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter> + <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter> + </parameter> +</transportReceiver></div> + +<p> + Please note that above configuration is for the AcitveMQ broker. If you are using some + other JMS provider, then the values of the parameters should be changed accordingly. + </p> + </div> + <a name="sender"></a> +<div class="section" id="sender"> +<h3><a name="Enabling_the_JMS_Sender"></a>Enabling the JMS Sender</h3> + +<p> + If you want to configure Synapse to send out JMS messages, then the JMS transport + sender must be enabled. This is done by uncommenting the following section in the + repository/conf/axis2.xml file. + </p> + +<div class="xmlConf"><transportSender name="jms" class="org.apache.axis2.transport.jms.JMSSender"></div> + +<p> + Generally JMS transport sender is enabled by default in Synapse. + </p> + +<p> + Synapse also comes with a simple Ant script that can be used to easily setup + and enable the JMS transport in Synapse. To try this out go to the samples/util + directory and execute the following command. + </p> + +<div class="command">ant setupActiveMQ -Dactivemq.home=<i><ActiveMQ home directory></i></div> + +<p> + This will copy the necessary dependencies into Synapse and update the axis2.xml + file accordingly. Instead of providing the ActiveMQ installation path as a system + property, you can opt to set the ACTIVEMQ_HOME environment variable too. + </p> + </div> + </div> + <a name="server"></a> +<div class="section" id="server"> +<h2><a name="Enabling_JMS_Support_in_Axis2_Server"></a>Enabling JMS Support in Axis2 Server</h2> + +<p> + Some of the Synapse samples involve Synapse sending messages to the Axis2 server + over JMS. For that we should enable the JMS transport listener and the sender for + the Axis2 server (sender is used to send back responses). Provided that all the + prerequisites are met, this can be done by uncommenting the JMS transport receiver + and sender configurations in the samples/axis2Server/repository/conf/axis2.xml file. + You will find that JMS sender is enabled for the Axis2 server by default. + </p> + +<p> + You can also execute the following command from the samples/util directory to + enable the JMS transport for Axis2 in an automated fashion. + </p> + +<div class="command">ant setupActiveMQ -Daxis2.xml=../axis2Server/repository/conf/axis2.xml</div> + +<p> + As in the case of Synapse, the default JMS listener configurations given in the + above axis2.xml file are for ActiveMQ. For other brokers, configuration should be + updated accordingly. + </p> + </div> + <a name="client"></a> +<div class="section" id="client"> +<h2><a name="Enabling_JMS_Support_in_Axis2_Client"></a>Enabling JMS Support in Axis2 Client</h2> + +<p> + In some sample scenarios we have to send JMS requests using the Axis2 client. + In such cases we should enable the JMS transport sender for the sample client. This + can be done by uncommenting the JMS sender configuration in the + samples/axis2Client/client_repo/conf/axis2.xml file. Generally this is enabled by + default and so you only need to meet the prerequisites described above. + </p> + </div> + + + </div> + </div> + </div> + <hr/> + <footer> + <div class="container-fluid"> + <div class="row-fluid"> + <p>Copyright ©2005–2023 +<a href="http://www.apache.org/">Apache Software Foundation</a>. +All rights reserved.</p> + </div> + </div> + </footer> + </body> +</html> Added: synapse/site/3_0_2/userguide/samples/setup/mail.html URL: http://svn.apache.org/viewvc/synapse/site/3_0_2/userguide/samples/setup/mail.html?rev=1909775&view=auto ============================================================================== --- synapse/site/3_0_2/userguide/samples/setup/mail.html (added) +++ synapse/site/3_0_2/userguide/samples/setup/mail.html Fri May 12 16:09:34 2023 @@ -0,0 +1,162 @@ +<!DOCTYPE html> +<!-- + | Generated by Apache Maven Doxia Site Renderer 1.7.4 at 2023-05-04 + | Rendered using Apache Maven Fluido Skin 1.6 +--> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <meta name="Date-Revision-yyyymmdd" content="20230504" /> + <meta http-equiv="Content-Language" content="en" /> + <title>Apache Synapse – Apache Synapse - E-Mail Setup Guide</title> + <link rel="stylesheet" href="../../../css/apache-maven-fluido-1.6.min.css" /> + <link rel="stylesheet" href="../../../css/site.css" /> + <link rel="stylesheet" href="../../../css/print.css" media="print" /> + <script type="text/javascript" src="../../../js/apache-maven-fluido-1.6.min.js"></script> + </head> + <body class="topBarDisabled"> + <div class="container-fluid"> + <div id="banner"> + <div class="pull-left"><div id="bannerLeft"><h2>Apache Synapse</h2> +</div> +</div> + <div class="pull-right"></div> + <div class="clear"><hr/></div> + </div> + + <div id="breadcrumbs"> + <ul class="breadcrumb"> + <li id="publishDate">Last Published: 2023-05-04<span class="divider">|</span> +</li> + <li id="projectVersion">Version: 3.0.2</li> + </ul> + </div> + <div class="row-fluid"> + <div id="leftColumn" class="span2"> + <div class="well sidebar-nav"> +<ul class="nav nav-list"> + <li class="nav-header">Main Menu</li> + <li><a href="../../../index.html" title="Home"><span class="none"></span>Home</a> </li> + <li><a href="../../../download.html" title="Download"><span class="none"></span>Download</a> </li> + <li><a href="../../../history.html" title="History"><span class="none"></span>History</a> </li> + <li><a href="http://www.apache.org/licenses/LICENSE-2.0" class="externalLink" title="License"><span class="none"></span>License</a> </li> + <li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a> </li> + <li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a> </li> + <li><a href="http://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a> </li> + <li class="nav-header">Documentation</li> + <li><a href="../../../userguide/installation.html" title="Installation Guide"><span class="none"></span>Installation Guide</a> </li> + <li><a href="../../../userguide/quick_start.html" title="Quick Start Guide"><span class="none"></span>Quick Start Guide</a> </li> + <li><a href="../../../userguide/samples/setup/index.html" title="Samples Setup Guide"><span class="none"></span>Samples Setup Guide</a> </li> + <li><a href="../../../userguide/samples.html" title="Samples Catalog"><span class="none"></span>Samples Catalog</a> </li> + <li><a href="../../../userguide/config.html" title="Configuration Language"><span class="none"></span>Configuration Language</a> </li> + <li><a href="../../../userguide/mediators.html" title="Mediators Catalog"><span class="none"></span>Mediators Catalog</a> </li> + <li><a href="../../../userguide/transports.html" title="Transports Catalog"><span class="none"></span>Transports Catalog</a> </li> + <li><a href="../../../userguide/properties.html" title="Properties Catalog"><span class="none"></span>Properties Catalog</a> </li> + <li><a href="../../../userguide/xpath.html" title="XPath functions and Variables"><span class="none"></span>XPath functions and Variables</a> </li> + <li><a href="../../../userguide/extending.html" title="Extending Synapse"><span class="none"></span>Extending Synapse</a> </li> + <li><a href="../../../userguide/template_library.html" title="Synapse Template Libraries"><span class="none"></span>Synapse Template Libraries</a> </li> + <li><a href="../../../userguide/upgrading.html" title="Upgrading"><span class="none"></span>Upgrading</a> </li> + <li><a href="../../../userguide/deployment.html" title="Deployment"><span class="none"></span>Deployment</a> </li> + <li><a href="../../../apidocs/" title="Javadocs"><span class="none"></span>Javadocs</a> </li> + <li><a href="../../../userguide/faq.html" title="FAQ"><span class="none"></span>FAQ</a> </li> + <li class="nav-header">Developer Resources</li> + <li><a href="../../../dev/developer-guide.html" title="Developer Guide"><span class="none"></span>Developer Guide</a> </li> + <li><a href="../../../dev/best-practices.html" title="Development Best Practices"><span class="none"></span>Development Best Practices</a> </li> + <li><a href="../../../dev/release-process.html" title="Release Process"><span class="none"></span>Release Process</a> </li> + <li class="nav-header">Project Details</li> + <li><a href="../../../project-info.html" title="Overview"><span class="none"></span>Overview</a> </li> + <li><a href="../../../mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a> </li> + <li><a href="../../../source-repository.html" title="Source Repository"><span class="none"></span>Source Repository</a> </li> + <li><a href="../../../issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a> </li> + <li><a href="../../../dependency-management.html" title="Dependencies"><span class="none"></span>Dependencies</a> </li> + <li><a href="../../../team-list.html" title="Project Team"><span class="none"></span>Project Team</a> </li> + </ul> + <hr /> + <div id="poweredBy"> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> + <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../../../images/logos/maven-feather.png" /></a> + </div> + </div> + </div> + <div id="bodyColumn" class="span10" > + + + <div class="section"> +<h2><a name="E-Mail_Setup_Guide"></a>E-Mail Setup Guide</h2> + +<p> + This document explains how to setup the mail transport sender and listener + as required by the samples. + </p> + </div> + +<div class="section"> +<h2><a name="Contents"></a>Contents</h2> + +<ul> + +<li> + <a href="#mailTransportSender">Setting up Mail Transport Sender</a> + </li> + +<li> + <a href="#mailTransportReceiver">Setting up Mail Transport Receiver</a> + </li> + </ul> + </div> + <a name="mailTransportSender"></a> +<div class="section" id="mailTransportSender"> +<h2><a name="Setting_up_Mail_Transport_Sender"></a>Setting up Mail Transport Sender</h2> + +<p> + To enable the mail transport sender for samples, you need to uncomment + the mail transport sender configuration in the + repository/conf/axis2.xml. Uncomment the mail transport sender sample + configuration and make sure it points to a valid SMTP configuration for + any actual scenarios. + +<div class="xmlConf"><transportSender name="mailto" class="org.apache.synapse.transport.mail.MailTransportSender"> + <parameter name="mail.smtp.host">smtp.gmail.com</parameter> + <parameter name="mail.smtp.port">587</parameter> + <parameter name="mail.smtp.starttls.enable">true</parameter> + <parameter name="mail.smtp.auth">true</parameter> + <parameter name="mail.smtp.user">synapse.demo.mail1</parameter> + <parameter name="mail.smtp.password">mailpassword</parameter> + <parameter name="mail.smtp.from">synapse.demo.ma...@gmail.com</parameter> +</transportSender></div> + </p> + </div> + <a name="mailTransportReceiver"></a> +<div class="section" id="mailTransportReceiver"> +<h2><a name="Setting_up_Mail_Transport_Receiver"></a>Setting up Mail Transport Receiver</h2> + +<p> + To enable the mail transport receiver for samples, you need to + uncomment the mail transport receiver configuration in the + configuration. Note: you need to provide correct parameters for a valid + mail account at service level. + </p> + +<div class="xmlConf"><transportReceiver name="mailto" class="org.apache.axis2.transport.mail.MailTransportListener"></transportReceiver></div> + </div> + + + </div> + </div> + </div> + <hr/> + <footer> + <div class="container-fluid"> + <div class="row-fluid"> + <p>Copyright ©2005–2023 +<a href="http://www.apache.org/">Apache Software Foundation</a>. +All rights reserved.</p> + </div> + </div> + </footer> + </body> +</html> Added: synapse/site/3_0_2/userguide/samples/setup/script.html URL: http://svn.apache.org/viewvc/synapse/site/3_0_2/userguide/samples/setup/script.html?rev=1909775&view=auto ============================================================================== --- synapse/site/3_0_2/userguide/samples/setup/script.html (added) +++ synapse/site/3_0_2/userguide/samples/setup/script.html Fri May 12 16:09:34 2023 @@ -0,0 +1,253 @@ +<!DOCTYPE html> +<!-- + | Generated by Apache Maven Doxia Site Renderer 1.7.4 at 2023-05-04 + | Rendered using Apache Maven Fluido Skin 1.6 +--> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <meta name="Date-Revision-yyyymmdd" content="20230504" /> + <meta http-equiv="Content-Language" content="en" /> + <title>Apache Synapse – Apache Synapse - Script Setup Guide</title> + <link rel="stylesheet" href="../../../css/apache-maven-fluido-1.6.min.css" /> + <link rel="stylesheet" href="../../../css/site.css" /> + <link rel="stylesheet" href="../../../css/print.css" media="print" /> + <script type="text/javascript" src="../../../js/apache-maven-fluido-1.6.min.js"></script> + </head> + <body class="topBarDisabled"> + <div class="container-fluid"> + <div id="banner"> + <div class="pull-left"><div id="bannerLeft"><h2>Apache Synapse</h2> +</div> +</div> + <div class="pull-right"></div> + <div class="clear"><hr/></div> + </div> + + <div id="breadcrumbs"> + <ul class="breadcrumb"> + <li id="publishDate">Last Published: 2023-05-04<span class="divider">|</span> +</li> + <li id="projectVersion">Version: 3.0.2</li> + </ul> + </div> + <div class="row-fluid"> + <div id="leftColumn" class="span2"> + <div class="well sidebar-nav"> +<ul class="nav nav-list"> + <li class="nav-header">Main Menu</li> + <li><a href="../../../index.html" title="Home"><span class="none"></span>Home</a> </li> + <li><a href="../../../download.html" title="Download"><span class="none"></span>Download</a> </li> + <li><a href="../../../history.html" title="History"><span class="none"></span>History</a> </li> + <li><a href="http://www.apache.org/licenses/LICENSE-2.0" class="externalLink" title="License"><span class="none"></span>License</a> </li> + <li><a href="http://www.apache.org/foundation/thanks.html" class="externalLink" title="Thanks"><span class="none"></span>Thanks</a> </li> + <li><a href="http://www.apache.org/foundation/sponsorship.html" class="externalLink" title="Sponsorship"><span class="none"></span>Sponsorship</a> </li> + <li><a href="http://www.apache.org/security/" class="externalLink" title="Security"><span class="none"></span>Security</a> </li> + <li class="nav-header">Documentation</li> + <li><a href="../../../userguide/installation.html" title="Installation Guide"><span class="none"></span>Installation Guide</a> </li> + <li><a href="../../../userguide/quick_start.html" title="Quick Start Guide"><span class="none"></span>Quick Start Guide</a> </li> + <li><a href="../../../userguide/samples/setup/index.html" title="Samples Setup Guide"><span class="none"></span>Samples Setup Guide</a> </li> + <li><a href="../../../userguide/samples.html" title="Samples Catalog"><span class="none"></span>Samples Catalog</a> </li> + <li><a href="../../../userguide/config.html" title="Configuration Language"><span class="none"></span>Configuration Language</a> </li> + <li><a href="../../../userguide/mediators.html" title="Mediators Catalog"><span class="none"></span>Mediators Catalog</a> </li> + <li><a href="../../../userguide/transports.html" title="Transports Catalog"><span class="none"></span>Transports Catalog</a> </li> + <li><a href="../../../userguide/properties.html" title="Properties Catalog"><span class="none"></span>Properties Catalog</a> </li> + <li><a href="../../../userguide/xpath.html" title="XPath functions and Variables"><span class="none"></span>XPath functions and Variables</a> </li> + <li><a href="../../../userguide/extending.html" title="Extending Synapse"><span class="none"></span>Extending Synapse</a> </li> + <li><a href="../../../userguide/template_library.html" title="Synapse Template Libraries"><span class="none"></span>Synapse Template Libraries</a> </li> + <li><a href="../../../userguide/upgrading.html" title="Upgrading"><span class="none"></span>Upgrading</a> </li> + <li><a href="../../../userguide/deployment.html" title="Deployment"><span class="none"></span>Deployment</a> </li> + <li><a href="../../../apidocs/" title="Javadocs"><span class="none"></span>Javadocs</a> </li> + <li><a href="../../../userguide/faq.html" title="FAQ"><span class="none"></span>FAQ</a> </li> + <li class="nav-header">Developer Resources</li> + <li><a href="../../../dev/developer-guide.html" title="Developer Guide"><span class="none"></span>Developer Guide</a> </li> + <li><a href="../../../dev/best-practices.html" title="Development Best Practices"><span class="none"></span>Development Best Practices</a> </li> + <li><a href="../../../dev/release-process.html" title="Release Process"><span class="none"></span>Release Process</a> </li> + <li class="nav-header">Project Details</li> + <li><a href="../../../project-info.html" title="Overview"><span class="none"></span>Overview</a> </li> + <li><a href="../../../mail-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a> </li> + <li><a href="../../../source-repository.html" title="Source Repository"><span class="none"></span>Source Repository</a> </li> + <li><a href="../../../issue-tracking.html" title="Issue Tracking"><span class="none"></span>Issue Tracking</a> </li> + <li><a href="../../../dependency-management.html" title="Dependencies"><span class="none"></span>Dependencies</a> </li> + <li><a href="../../../team-list.html" title="Project Team"><span class="none"></span>Project Team</a> </li> + </ul> + <hr /> + <div id="poweredBy"> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> + <div class="clear"></div> + <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="../../../images/logos/maven-feather.png" /></a> + </div> + </div> + </div> + <div id="bodyColumn" class="span10" > + + + <div class="section"> +<h2><a name="Script_Setup_Guide"></a>Script Setup Guide</h2> + +<p> + Apache Synapse ships with a set of scripting samples. This document explains + how to setup the necessary script engines for these samples. In addition this + guide describes how to setup the JSON message builder and formatter for JSON + mediation samples. + </p> + </div> + +<div class="section"> +<h2><a name="Contents"></a>Contents</h2> + +<ul> + +<li> + <a href="#intro">Introduction</a> + </li> + +<li> + <a href="#javaScript">JavaScripts Support</a> + </li> + +<li> + <a href="#ruby">Ruby Support</a> + </li> + +<li> + <a href="#python">Python Support</a> + </li> + +<li> + <a href="#json-syn3">JSON Support on Synapse 3.0.0</a> + </li> + +<li> + <a href="#json">JSON Support Prior to Synapse 3.0.0</a> + </li> + </ul> + </div> + <a name="intro"></a> +<div class="section" id="intro"> +<h2><a name="Configuring_Synapse_for_Script_Mediator_Support"></a>Configuring Synapse for Script Mediator Support</h2> + +<p> + The Synapse Script Mediator is a Synapse extension, and thus all + prerequisites are not bundled by default with the Synapse + distribution.Before you use some script mediators you may need to + manually add the required jar files to the Synapse lib directory, and + optionally perform other installation tasks as may be required by the + individual scripting language. This is explained in the following + sections. + </p> + <a name="javaScript"></a> +<div class="section" id="javaScript"> +<h3><a name="JavaScript_Support"></a>JavaScript Support</h3> + + +<p> + The JavaScript/E4X support is enabled by default and comes + ready-to-use with the Synapse distribution. + </p> + </div> + <a name="ruby"></a> +<div class="section" id="ruby"> +<h3><a name="Ruby_Support"></a>Ruby Support</h3> + +<p> + For Ruby support you need to download the 'jruby-complete.jar' + from the Maven repository for JRuby, and copy it into the 'lib' + folder of Synapse . The JRuby JAR can be downloaded from + <a class="externalLink" href="http://repo2.maven.org/maven2/org/jruby/jruby-complete/1.3.0/jruby-complete-1.3.0.jar"> + here + </a> + </p> + </div> + <a name="python"></a> +<div class="section" id="python"> +<h3><a name="Python_Support"></a>Python Support</h3> + +<p> + For Python support you need to download the 'jython.jar' + from the Maven repository for Jython, and copy it into the 'lib' + folder of Synapse . The Jython JAR can be downloaded from + <a class="externalLink" href="http://central.maven.org/maven2/org/python/jython/2.2.1/jython-2.2.1.jar"> + here + </a> + </p> + </div> + + <a name="json-syn3"></a> +<div class="section" id="json-syn3"> +<h3><a name="JSON_Support_on_Synapse_3.0.0"></a>JSON Support on Synapse 3.0.0</h3> + +<p> + <a class="externalLink" href="http://json.org">JSON</a> + is a lightweight data-interchange format. + It can be used as an alternative to XML or SOAP. From Synapse 3.0.0 onward, there are no additional + steps required to enable JSON. + + </p> + </div> + + <a name="json"></a> +<div class="section" id="json"> +<h3><a name="JSON_Support_Prior_to_Synapse_3.0.0"></a>JSON Support Prior to Synapse 3.0.0</h3> + +<p> + To enable JSON + support on Synpase versions prior to 3.0.0, the following two jar files should be deployed into the 'lib' + directory of Synapse. + </p> + +<ul> + +<li> + <a class="externalLink" href="http://repo1.maven.org/maven2/org/apache/axis2/axis2-json">axis2-json.jar</a> + </li> + +<li> + <a class="externalLink" href="http://central.maven.org/maven2/org/codehaus/jettison/jettison/">jettison.jar</a> + </li> + </ul> + +<p> + Jettison 1.1 is recommended. + </p> + +<p> + Having deployed the necessary libraries you should now register the JSON message + builder and formatter with Synapse. Open up 'repository/conf/axis2.xml' file + of Synapse and add the following two entries under the 'messageBuilders' and + 'messageFormatters' sections respectively. + </p> + +<div class="xmlConf"><messageBuilder contentType="application/json" + class="org.apache.axis2.json.JSONOMBuilder"/> + +<messageFormatter contentType="application/json" + class="org.apache.axis2.json.JSONMessageFormatter"/></div> + +<p> + If you are planning to run <a href="../sample158.html">sample 158</a>, you should also add the above two entries + to the 'samples/axis2Client/client_repo/conf/axis2.xml' file. + </p> + </div> + + </div> + + + </div> + </div> + </div> + <hr/> + <footer> + <div class="container-fluid"> + <div class="row-fluid"> + <p>Copyright ©2005–2023 +<a href="http://www.apache.org/">Apache Software Foundation</a>. +All rights reserved.</p> + </div> + </div> + </footer> + </body> +</html>