Added: synapse/trunk/java/src/site/xdoc/1_2/Synapse_Samples_Setup.xml URL: http://svn.apache.org/viewvc/synapse/trunk/java/src/site/xdoc/1_2/Synapse_Samples_Setup.xml?rev=998841&view=auto ============================================================================== --- synapse/trunk/java/src/site/xdoc/1_2/Synapse_Samples_Setup.xml (added) +++ synapse/trunk/java/src/site/xdoc/1_2/Synapse_Samples_Setup.xml Mon Sep 20 09:23:05 2010 @@ -0,0 +1,802 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> + +<document> + <properties> + <title>Apache Synapse - Samples Setup</title> + </properties> + <head> + <style type="text/css" xml:space="preserve"> + .command { + border: 1px dashed #3c78b5; + text-align: left; + background-color: #f0f0f0; + padding: 3px; + font-size: 11px; + font-family: Courier; + margin: 10px; + line-height: 13px; + } + .consoleOutput { + border: 1px dashed #3c78b5; + font-size: 11px; + font-family: Courier; + margin: 10px; + line-height: 13px; + background-color: #f0f0f0; + border-bottom: 1px dashed #3c78b5; + padding: 3px; + border-style: solid; + } + .info { + border-style: solid; + border-width: 1px; + border-color: #090; + background-color: #dfd; + text-align:left; + margin-top: 5px; + margin-bottom: 5px; + } + li { + font-family: Verdana, arial, sans-serif; + font-size: 11px; + line-height: 16px; + color: #000000; + font-weight: normal; + } + p, td { + font-family: Verdana, arial, sans-serif; + font-size: 11px; + line-height: 16px; + color: #000000; + font-weight: normal; + } + pre { + padding: 0px; + margin-top: 5px; + margin-left: 15px; + margin-bottom: 5px; + margin-right: 5px; + text-align: left; + background-color: #f0f0f0; + padding: 3px; + border: 1px dashed #3c78b5; + font-size: 11px; + font-family: Courier; + margin: 10px; + line-height: 13px; + } + h1 { + font-size: 24px; + line-height: normal; + font-weight: bold; + background-color: #f0f0f0; + color: #003366; + border-bottom: 1px solid #3c78b5; + padding: 2px; + margin: 36px 0px 4px 0px; + } + h2 { + font-size: 18px; + line-height: normal; + font-weight: bold; + background-color: #f0f0f0; + border-bottom: 1px solid #3c78b5; + padding: 2px; + margin: 27px 0px 4px 0px; + } + h3 { + font-size: 14px; + line-height: normal; + font-weight: bold; + background-color: #f0f0f0; + padding: 2px; + margin: 21px 0px 4px 0px; + } + h4 { + font-size: 12px; + line-height: normal; + font-weight: bold; + background-color: #f0f0f0; + padding: 2px; + margin: 18px 0px 4px 0px; + }</style> + </head> + <body> + <div style="margin-top:-40px; float:right; _margin-top:0px;"> + <img alt="Synapse logo" + src="images/synapse-logo-web2.png" width="197" + height="82"/> + </div> + <div> + <h1> + Apache Synapse ESB - Samples Setup + </h1> + </div> + <p/> + <p> + Synapse ships with a set of working examples that demonstrate some of the + basic features and capabilities of Synapse. A set of sample clients and + services are provided in addition to the sample configurations. Scripts + are provided to execute the sample scenarios as explained below. + </p> + <h4> + Prerequisites + </h4> + <p> + To try out the samples you will need Java development kit version 1.5.x or + later and Apache Ant version 1.6.5 or later. Ant can be downloaded from + <a href="http://ant.apache.org">http://ant.apache.org</a>. The JMS examples can be executed against an + ActiveMQ installation by default (or another JMS provider with relevant + configuration changes.) + </p> + <p/> + <p> + Note*: The samples and the documentation assume that you are running + Synapse in DEBUG mode. You can switch from the default INFO log messages + to DEBUG log messages by changing the line + "log4j.category.org.apache.synapse=INFO" as + "log4j.category.org.apache.synapse=DEBUG" in the lib/log4j.properties + file. + </p> + <h2> + Understanding the Samples + </h2> + <table border="0" style="width: 100%"> + <caption/> + <tbody> + <tr> + <td> + Client + </td> + <td> + Synapse + </td> + <td> + Service + </td> + </tr> + <tr> + <td/> + <td/> + <td/> + </tr> + <tr> + <td> + ant stockquote + </td> + <td> + ./synapse.sh -sample <n> + </td> + <td> + SimpleStockQuoteService + </td> + </tr> + <tr> + <td/> + <td/> + <td> + SecureStockQuoteService etc. + </td> + </tr> + </tbody> + </table> + <p> + The above table depicts the interactions between the clients, Synapse + and the services at a higher level. The Clients are able to send SOAP/REST + or POX messages over transports such as HTTP/S or JMS with WS-Addressing, + WS-Security or WS-Reliable messaging. They can send binary optimized + content using MTOM or SwA or binary or plain text JMS messages. After + mediation through Synapse, the requests are passed over to the sample + services. The sample clients and services are explained below. + </p> + <p/> + <h2> + Using the Sample Clients + </h2> + <p/> + <p> + The sample clients can be executed from the samples/axis2Client directory + through the provided ant script. Simply executing 'ant' displays the + available clients and some of the sample options used to configure them. + The sample clients available are listed below: + </p> + <h3> + 1. Stock Quote Client + </h3> + <p/> + <p> + This is a simple SOAP client that can send stock quote requests, and + receive and display the last sale price for a stock symbol. + </p> +<pre xml:space="preserve">ant stockquote [-Dsymbol=IBM|MSFT|SUN|..] + [-Dmode=quote | customquote | fullquote | placeorder | marketactivity] + [-Daddurl=http://localhost:9000/soap/SimpleStockQuoteService] + [-Dtrpurl=http://localhost:8280] [-Dprxurl=http://localhost:8280] + [-Dpolicy=../../repository/conf/sample/resources/policy/policy_1.xml]</pre> + + <p> + The client is able to operate in the following modes, and send the + payloads listed below as SOAP messages: + </p> + <ul> + <li> + quote - send a quote request for a single stock as follows. The response + contains the last sales price for the stock which will be displayed +<pre xml:space="preserve"><m:getQuote xmlns:m="http://services.samples/xsd"> + <m:request> + <m:symbol>IBM</m:symbol> + </m:request> +</m:getQuote></pre> + </li> + <li> + customquote - send 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 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. +<pre xml:space="preserve"><m0:checkPriceRequest xmlns:m0="http://www.apache-synapse.org/test"> + <m0:Code>symbol</m0:Code> +</m0:checkPriceRequest></pre> + </li> + <li> + fullquote - get quote reports for the stock over a number of days (i.e. + last 100 days of the year). +<pre xml:space="preserve"><m:getFullQuote xmlns:m="http://services.samples/xsd"> + <m:request> + <m:symbol>IBM</m:symbol> + </m:request> +</m:getFullQuote></pre> + </li> + <li> + placeorder - place an order for stocks using a one way request +<pre xml:space="preserve"><m:placeOrder xmlns:m="http://services.samples/xsd"> + <m:order> + <m:price>3.141593E0</m:price> + <m:quantity>4</m:quantity> + <m:symbol>IBM</m:symbol> + </m:order> +</m:placeOrder></pre> + </li> + <li> + marketactivity - get a market activity report for the day (i.e. quotes + for multiple symbols) +<pre xml:space="preserve"><m:getMarketActivity xmlns:m="http://services.samples/xsd"> + <m:request> + <m:symbol>IBM</m:symbol> + ... + <m:symbol>MSFT</m:symbol> + </m:request> +</m:getMarketActivity></pre> + </li> + </ul> + <p> + Note : See samples/axis2Client/src/samples/common/StockQuoteHandler.java + for sample responses expected by the clients. + </p> + <h4> + Smart Client Mode: + </h4> + <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> +<pre xml:space="preserve">e.g: ant stockquote -Daddurl=<addressingEPR> -Dtrpurl=<synapse></pre> + <h4> + Gateway / Dumb Client Mode: + </h4> + <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 + Synapse rules for proper mediation and routing of the message to the + ultimate destination. + </p> +<pre xml:space="preserve">e.g: ant stockquote -Dtrpurl=<synapse></pre> + <h4> + Proxy Client Mode: + </h4> + <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> +<pre xml:space="preserve">e.g: ant stockquote -Dprxurl=<synapse> [-Daddurl=<addressingEPR>]</pre> + + <p/> + <p> + Specifying a policy + </p> + <p> + By specifying a WS-Policy using the 'policy' property, QoS aspects such as + WS-Security can be enforced on the request. The policy can specify details + such as timestamps, signatures and encryption. See Apache Axis2 and Apache + Rampart documentation for more information. + </p> + <p/> + <h3> + 2. Generic JMS Client + </h3> + <p/> + <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/> + <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 request. + </p> + <p> + e.g: + </p> +<pre xml:space="preserve">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</pre> + <p> + Note: The JMS client assumes the existence of a default ActiveMQ (4.1.0 or + above) installation on the local machine. + </p> + <p/> + <h3> + 3. MTOM / SwA Client + </h3> + <p/> + <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> +<pre xml:space="preserve">e.g. ant optimizeclient -Dopt_mode=[mtom | swa]</pre> + + <p/> + <h2> + Starting the Sample Services + </h2> + <p/> + <p> + The sample services ship with a pre-configured Axis2 server and + demonstrates in-only and in-out SOAP/REST or POX messaging over HTTP/S and + JMS transports, using WS-Addressing, WS-Security and WS-Reliable Messaging + and handling of binary content using MTOM and SwA. + </p> + <p> + The sample services can be found in the samples/axis2Server/src directory + and can be built and deployed using ant from within each service directory + </p> +<pre xml:space="preserve">u...@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</pre> + <p/> + <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 + 9002 respectively. To enable JMS transport, you will need to setup and + start a JMS provider. An ActiveMQ 4.0.1 or later JMS server on the local + machine is supported by default, and can be easily enabled by uncommenting + the JMS transport from the repository/conf/axis2.xml + </p> + <p/> + <h3> + Sample services + </h3> + <h4> + 1. SimpleStockQuoteService + </h4> + <p> + 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. + </p> + <h4> + 2. SecureStockQuoteService + </h4> + <p> + This service is a clone of the SimpleStockQuoteService, but has + WS-Security enabled and an attached security policy for signing and + encryption of messages. + </p> + <h4> + 3. MTOMSwASampleService + </h4> + <p> + 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. + </p> + <p/> + <h3> + Starting Sample Synapse Configurations + </h3> + <p> + To start Synapse with the sample default configuration, execute the + synapse.bat or synapse.sh script found in the /bin directory. This starts + up an instance of Synapse using the Synapse and Axis2 configuration files + located in the repository/conf directory. The repository/conf/samples + directory contains the sample configurations available as synapse_sample_<n>.xml + files. To start a specific sample configuration of Synapse, use the + '-sample <n>' switch as follows: + </p> +<pre xml:space="preserve">synapse.bat -sample <n> +synapse.sh -sample <n></pre> + <p/> + <h2> + Setting up the JMS Listener + </h2> + <p/> + <p> + The samples used in this guide assumes the existence of a local ActiveMQ + (4.1.0 or higher) installation properly installed and started up. You also + need to copy the following client JAR files into the Synapse 'lib' folder + to support ActiveMQ. These files are found in the 'lib' directory of the + ActiveMQ installation. + </p> + <ul> + <li> + activeio-core-3.0.0-incubator.jar + </li> + <li> + activemq-core-4.1.0-incubator.jar + </li> + <li> + geronimo-j2ee-management_1.0_spec-1.0.jar + </li> + </ul> + <p> + To enable the JMS transport, you need to uncomment the JMS transport + listener configuration. If you are using a JMS provider other than + ActiveMQ this configuration should be updated to reflect your environment. + Once uncommented, the default configuration should be as follows. To + enable JMS for synapse, the repository/conf/axis2.xml must be updated, + while to enable JMS support for the sample Axis2 server the + samples/axis2Server/repository/conf/axis2.xml file must be updated. + </p> +<pre xml:space="preserve"> <!--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></pre> + <p/> + <h2 id="mailsender"> + Setting up Mail Transport Sender + </h2> + <p> + To enable the mail transport for samples, you need to uncomment the mail + transport sender configuration in the repository/conf/axis2.xml. Uncomment + the MailTransportSender sample configuration and make sure it points to a + valid SMTP configuration for any actual scenarios. + </p> +<pre xml:space="preserve"> <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.0</parameter> + <parameter name="mail.smtp.password">mailpassword</parameter> + <parameter name="mail.smtp.from">[email protected]</parameter> + </transportSender></pre> + <p/> + <h2 id="fixtransport"> + Configuring Synapse for the FIX Transport + </h2> + <p> + First of all you need to put the following jar files into the lib folder of the + synapse distribution + </p> + <ul> + <li>quickfixj-core-1.3.1.jar</li> + <li>quickfixj-msg-fix40-1.3.1.jar</li> + <li>quickfixj-msg-fix41-1.3.1.jar</li> + <li>quickfixj-msg-fix42-1.3.1.jar</li> + <li>quickfixj-msg-fix43-1.3.1.jar</li> + <li>quickfixj-msg-fix44-1.3.1.jar</li> + <li>slf4j-api-1.3.0.jar</li> + <li>slf4j-jdk14-1.3.0.jar</li> + </ul> + <h3 id="fixtransport"> + Setting up the FIX Transport + </h3> + <p> + To run the FIX samples used in this guide you need a local + <a href="http://www.quickfixj.org">Quickfix/J</a> installation. + Download Quickfix/J from <a href="http://www.quickfixj.org/downloads">here</a>. + </p> + <p> + To enable the FIX transport for samples, you need to uncomment the FIX + transport sender and FIX transport receiver configurations in the + repository/conf/axis2.xml. Simply locate and uncomment the FIXTransportSender + and FIXTransportListener sample configurations. Also add the following jars to + the Synapse class path (SYNAPSE_HOME/lib directory). + </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-1.1.0.jar</li> + <li>slf4j-api-1.3.0.jar</li> + </ul> + <p> + All these jars are shipped with the Quickfix/J binary distribution. + </p> + <p/> + <h3 id="fixsamples"> + Configuring Synapse for FIX Samples + </h3> + <p> + In order to configure Synapse to run the FIX samples given in this + guide you will need to create some FIX configuration files as + specified below. + </p> + <p> + The FileStorePath property in the following two files should point + to two directories in your local file system. Once the samples + are executed, Synapse will create FIX message stores in these two + directories. + </p> + <p> + Put the following entries in a file called fix-synapse.cfg + + <pre> + [default] + FileStorePath=examples/target/data/synapse-acceptor + ConnectionType=acceptor + StartTime=00:00:00 + EndTime=00:00:00 + HeartBtInt=30 + ValidOrderTypes=1,2,F + SenderCompID=SYNAPSE + TargetCompID=BANZAI + UseDataDictionary=Y + DefaultMarketPrice=12.30 + + [session] + BeginString=FIX.4.0 + SocketAcceptPort=9876 + </pre> + </p> + <p> + Put the following entries in a file called synapse-sender.cfg + <pre> + [default] + FileStorePath=examples/target/data/synapse-initiator + SocketConnectHost=localhost + StartTime=00:00:00 + EndTime=00:00:00 + HeartBtInt=30 + ReconnectInterval=5 + </pre> + </p> + <p/> + <h3 id="fixsamplesconfig"> + Configuring Sample FIX Applications + </h3> + <p> + Locate and edit the FIX configuration file of Executor to be as follows. + This file is usually named executor.cfg + <pre> + [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 + </pre> + </p> + <p> + Locate and edit the FIX configuration file of Banzai to be as follows. + This file is usually named banzai.cfg + <pre> + [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 + </pre> + </p> + <p> + The FileStorePath property in the above two files should point + to two directories in your local file system. + </p> + <p> + If you are using a binary distribution of Quickfix/J, the two + samples and their configuration files are all packed to a + single jar file called quickfixj-examples.jar. You will have to + extract the jar file, modify the configuration files and pack + them to a jar file again under the same name. + </p> + <p> + For more information regarding the FIX sample applications please + refer the <a href="http://www.quickfixj.org/quickfixj/usermanual/usage/examples.html">Example Applications</a> section in the Quickfix/J + documentation. For more information on configuring Quickfix/J applications + refer the <a href="http://www.quickfixj.org/quickfixj/usermanual/usage/configuration.html">Configuring Quickfix/J</a> section of the Quickfix/J + documentation. + </p> + <p/> + <h2 id="script"> + Configuring Synapse for Script Mediator Support + </h2> + <p/> + <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> + <h4> + JavaScript Support + </h4> + <p> + The JavaScript/E4X support is enabled by default and comes ready-to-use + with the Synapse distribution. + </p> + <h4> + Ruby Support + </h4> + <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 + href="http://repo1.maven.org/maven2/org/jruby/jruby-complete/1.0.1/jruby-complete-1.0.1.jar"> + here</a>. + </p> + <p/> + <h2 id="derby"> + Setting up Derby database server + </h2> + <p> + You can download Apache Derby distribution from <a + href="http://db.apache.org/derby/">http://db.apache.org/derby/</a> + </p> + <ol> + <li> + Set up and start the Derby network server + </li> + <li> + Create and open a connection to the database using the Derby client + driver<br/> + <pre> CONNECT 'jdbc:derby://localhost:1527/synapsedb;user=synapse;password=synapse;create=true';</pre> + </li> + <li> + Create a table using the following statement + <pre> CREATE table company(name varchar(10), id varchar(10), price double);</pre> + </li> + <li> + Inserts some data using following statements + <pre> INSERT into company values ('IBM','c1',0.0); + INSERT into company values ('SUN','c2',0.0); + INSERT into company values ('MSFT','c3',0.0);</pre> + </li> + </ol> + <p> + When using Derby, you need to add derby.jar, derbyclient.jar and + derbynet.jar to the classpath. This can be done by putting the above three + jars into the Synapse lib directory. For testing these samples Derby + 10.1.1.0 binary distribution was used. + </p> + <p> + You can use any other database product instead of Derby. Then you have to + change the database connection details accordingly. Also you have to copy + the required database driver jars to the Synapse classpath. + </p> + <p/> + <h2>Setting up Synapse DataSources</h2> + +<div> +<p>Definition of the reusable database connection pool or datasources can be +done using synapse.properties file. It is possible to configure any number of +datasources. Currently only supports two type of datasources and those are +based on apache dbcp datasources. Those types are BasicDataSource and +PerUserPoolDataSource (based on apache dhcp).Following configuration includes +both two definition. This configuration is related with sample 363.</p> + + +<p>Configuration is somewhat similar to the log4j appender configuration.</p> + + +<p>It requires two databases, follow the above specified (Setting up +Derby Database server) steps to create the two databases +<strong>'jdbc:derby://localhost:1527/lookupdb'</strong>, +<strong>'jdbc:derby://localhost:1527/reportdb'</strong> using the user name and password as +'synapse'. Fill in the data for those two databases as per described in the above section</p> + +<div> +<p><strong>synapse.properties configuration <br /> +</strong></p> +<pre>#datasources +synapse.datasources=lookupds,reportds +synapse.datasources.icFactory=com.sun.jndi.rmi.registry.RegistryContextFactory +synapse.datasources.providerUrl=rmi://localhost:2199 +synapse.datasources.providerPort=2199 + +synapse.datasources.lookupds.type=BasicDataSource +synapse.datasources.lookupds.driverClassName=org.apache.derby.jdbc.ClientDriver +synapse.datasources.lookupds.url=jdbc:derby://localhost:1527/lookupdb;create=false +synapse.datasources.lookupds.username=synapse +synapse.datasources.lookupds.password=synapse +synapse.datasources.lookupds.dsName=lookupdb +synapse.datasources.lookupds.maxActive=100 +synapse.datasources.lookupds.maxIdle=20 +synapse.datasources.lookupds.maxWait=10000 + +synapse.datasources.reportds.type=PerUserPoolDataSource +synapse.datasources.reportds.cpdsadapter.factory=org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS +synapse.datasources.reportds.cpdsadapter.className=org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS +synapse.datasources.reportds.cpdsadapter.name=cpds +synapse.datasources.reportds.dsName=reportdb +synapse.datasources.reportds.driverClassName=org.apache.derby.jdbc.ClientDriver +synapse.datasources.reportds.url=jdbc:derby://localhost:1527/reportdb;create=false +synapse.datasources.reportds.username=synapse +synapse.datasources.reportds.password=synapse +synapse.datasources.reportds.maxActive=100 +synapse.datasources.reportds.maxIdle=20 +synapse.datasources.reportds.maxWait=10000</pre> +</div> +</div> +</body> +</document>
Added: synapse/trunk/java/src/site/xdoc/1_2/docs_index.xml URL: http://svn.apache.org/viewvc/synapse/trunk/java/src/site/xdoc/1_2/docs_index.xml?rev=998841&view=auto ============================================================================== --- synapse/trunk/java/src/site/xdoc/1_2/docs_index.xml (added) +++ synapse/trunk/java/src/site/xdoc/1_2/docs_index.xml Mon Sep 20 09:23:05 2010 @@ -0,0 +1,49 @@ +<?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>Documentation</title> + </properties> + +<body> + +<section name="Apache Synapse - Documentation"> + <p> + Apache Synapse is an extremely lightweight and easy-to-use Open Source Enterprise Service Bus + (ESB) available under the Apache Software License v2.0. Apache Synapse graduated from the + Apache Incubator on the 2nd of January 2007, and was accepted as a sub-project of the Apache + Web Services project. In December 2007, Apache Synapse became a top level project (TLP) of the + Apache Software Foundation + </p> + <p>Documentation for the 1.1.1 release:</p> + + <ul> + <li><a href="./Synapse_QuickStart.html">Quick Start Guide</a></li> + <li><a href="./Synapse_Configuration_Language.html">The Synapse Configuration Language</a></li> + <li><a href="./Synapse_Samples.html">A Quick start with Synapse Samples</a></li> + <li><a href="./Synapse_Extending.html">Extending Synapse</a></li> + <li>The Synapse Wiki <a href="http://wiki.apache.org/ws/Synapse">http://wiki.apache.org/ws/Synapse</a></li> + </ul> +</section> + +</body> +</document> Propchange: synapse/trunk/java/src/site/xdoc/1_2/docs_index.xml ------------------------------------------------------------------------------ svn:executable = * Modified: synapse/trunk/java/src/site/xdoc/history.xml URL: http://svn.apache.org/viewvc/synapse/trunk/java/src/site/xdoc/history.xml?rev=998841&r1=998840&r2=998841&view=diff ============================================================================== --- synapse/trunk/java/src/site/xdoc/history.xml (original) +++ synapse/trunk/java/src/site/xdoc/history.xml Mon Sep 20 09:23:05 2010 @@ -41,6 +41,11 @@ <th>Documentation</th> </tr> <tr class="b"> + <td>1.2</td> + <td>09-Jun-2008</td> + <td><a href="1_1_1/docs_index.html">click here</a> for 1.2 documentation</td> + </tr> + <tr class="b"> <td>1.1.1</td> <td>28-Jan-2008</td> <td><a href="1_1_1/content.html">click here</a> for 1.1.1 documentation</td>
