Author: hiranya
Date: Sun Nov 28 03:45:43 2010
New Revision: 1039828
URL: http://svn.apache.org/viewvc?rev=1039828&view=rev
Log:
Sample 7, 8
Modified:
synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/samples/sample7.xml
synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/samples/sample8.xml
Modified:
synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/samples/sample7.xml
URL:
http://svn.apache.org/viewvc/synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/samples/sample7.xml?rev=1039828&r1=1039827&r2=1039828&view=diff
==============================================================================
---
synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/samples/sample7.xml
(original)
+++
synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/samples/sample7.xml
Sun Nov 28 03:45:43 2010
@@ -23,7 +23,7 @@
<title>Apache Synapse - Sample 7</title>
</properties>
<body>
- <section name="Sample 7: ">
+ <section name="Sample 7: Introduction to Local Registry Entries and
Using Schema Validation">
<div class="xmlConf"><definitions
xmlns="http://ws.apache.org/ns/synapse">
<sequence name="main">
@@ -65,7 +65,8 @@
</definitions></div>
<subsection name="Objective">
<p>
-
+ Demonstrating the usage of the validate mediator for XML
schema validation
+ and using local registry (local entries) for storing
configuration metadata.
</p>
</subsection>
<subsection name="Pre-requisites">
@@ -85,11 +86,29 @@
</p>
</subsection>
<subsection name="Executing the Client">
+ <p>
+ This example shows how a static XML fragment could be
stored in the the
+ Synapse local registry. Resources defined in the local
registry are static
+ (i.e. never changes over the lifetime of the
configuration) and may be
+ specified as a source URL, in-line text or in-line xml. In
this example the
+ schema is made available under the key 'validate_schema'.
+ </p>
+ <p>
+ The validate mediator by default operates on the first
child element of the
+ SOAP body. You may specify an XPath expression using the
'source' attribute
+ to override this behaviour. The validate mediator in this
sample uses the 'validate_schema'
+ resource to validate the incoming message, and if the
message validation fails
+ it invokes the 'on-fail' sequence of mediators.
+ </p>
+ <p>
+ If you send a stockquote request using the 'ant stockquote
...' command as follows
+ you will get a fault back with the message 'Invalid custom
quote request' as
+ the schema validation fails. This is because the schema
used in the example
+ expects a slightly different message than what is created
by the stock quote
+ client. (i.e. expects a 'stocksymbol' element instead of
'symbol' to specify
+ the stock symbol)
+ </p>
<div class="command">ant stockquote
-Daddurl=http://localhost:9000/services/SimpleStockQuoteService
-Dtrpurl=http://localhost:8280/</div>
-
- <div class="consoleOutput">Sat Nov 18 21:01:23 IST 2006
SimpleStockQuoteService :: Generating quote for : IBM</div>
-
- <div class="consoleOutput">Standard :: Stock price =
$95.26454380258552</div>
</subsection>
</section>
<p><a href="../samples.html">Back to Catalog</a></p>
Modified:
synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/samples/sample8.xml
URL:
http://svn.apache.org/viewvc/synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/samples/sample8.xml?rev=1039828&r1=1039827&r2=1039828&view=diff
==============================================================================
---
synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/samples/sample8.xml
(original)
+++
synapse/trunk/scratch/hiranya/website/src/site/xdoc/userguide/samples/sample8.xml
Sun Nov 28 03:45:43 2010
@@ -23,7 +23,7 @@
<title>Apache Synapse - Sample 8</title>
</properties>
<body>
- <section name="Sample 8: ">
+ <section name="Sample 8: Introduction to Static and Dynamic Registry
Resources, and Using XSLT Transformations">
<div class="xmlConf"><definitions
xmlns="http://ws.apache.org/ns/synapse">
<!-- the SimpleURLRegistry allows access to a URL based registry (e.g.
file:/// or http://) -->
@@ -53,7 +53,9 @@
</definitions></div>
<subsection name="Objective">
<p>
-
+ Demonstrating the usage of the XSLT mediator for
transforming message content
+ and using local registry and remote registry for storing
configuration
+ metadata.
</p>
</subsection>
<subsection name="Pre-requisites">
@@ -73,11 +75,73 @@
</p>
</subsection>
<subsection name="Executing the Client">
- <div class="command">ant stockquote
-Daddurl=http://localhost:9000/services/SimpleStockQuoteService
-Dtrpurl=http://localhost:8280/</div>
-
- <div class="consoleOutput">Sat Nov 18 21:01:23 IST 2006
SimpleStockQuoteService :: Generating quote for : IBM</div>
-
- <div class="consoleOutput">Standard :: Stock price =
$95.26454380258552</div>
+ <p>
+ This example uses the XSLT mediator to perform
transformations, and the xslt
+ transformations are specified as registry resources. The
first resource
+ 'xslt-key-req' is specified as a 'local' registry entry.
Local entries do not
+ place the resource on the registry, but simply make it
available to the local
+ configuration. If a local entry is defined with a key that
already exists in
+ the remote registry, the local entry will get higher
precedence over the remote
+ resource.
+ </p>
+ <p>
+ In this example you will notice the new 'registry'
definition. Synapse comes
+ with a simple URL based registry implementation
(SimpleURLRegistry). During
+ initialization of the registry, the SimpleURLRegistry
expects to find a property
+ named 'root', which specifies a prefix for the registry
keys used later.
+ When the SimpleURLRegistry is used, this root is prefixed
to the entry keys to
+ form the complete URL of the resource being looked up. The
registry caches a
+ resource once requested, and stores it internally for a
specified duration.
+ Once this period expires, it will reload the meta
information about the resource
+ and reloads its cached copy if necessary, the next time
the resource is requested.
+ </p>
+ <p>
+ Hence the second XSLT resource key
'transform/transform_back.xslt' concatenated
+ with the 'root' of the SimpleURLRegistry
'file:repository/conf/sample/resources/'
+ forms the complete URL of the resource as
+
'file:repository/conf/sample/resources/transform/transform_back.xslt' and caches
+ its value for a period of 15000 ms.
+ </p>
+ <p>
+ Execute the custom quote client as follows and analyze the
the Synapse debug
+ log output.
+ </p>
+ <div class="command">ant stockquote
-Daddurl=http://localhost:9000/services/SimpleStockQuoteService
-Dtrpurl=http://localhost:8280/ -Dmode=customquote</div>
+ <p>
+ The incoming message is transformed into a standard stock
quote request by the
+ XSLT mediator. The XSLT mediator uses Xalan-J to perform
the transformations.
+ It is possible to configure the underlying transformation
engine using properties
+ when necessary. The response from the
SimpleStockQuoteService is converted back
+ into the custom format as expected by the client during
the out message processing.
+ </p>
+ <p>
+ During the response processing you could see the
SimpleURLRegistry fetching the
+ resource as shown by the log message below.
+ </p>
+ <div class="consoleOutput">[HttpClientWorker-1] DEBUG
SimpleURLRegistry ==> Repository fetch of resource with key :
transform/transform_back.xslt</div>
+ <p>
+ If you run the client again immediately (i.e within 15
seconds of the first
+ request) you will not see the resource being reloaded by
the registry as the
+ cached value would be still valid.
+ </p>
+ <p>
+ However if you leave the system idle for 15 seconds or
more and then retry the
+ same request, you will now notice that the registry
notices the cached resource
+ has expired and will reload the meta information about the
resource to check if
+ the resource has changed and will require a fresh fetch
from the source URL.
+ If the meta data / version number indicates that a reload
of the cached resource
+ is not necessary (i.e. unless the resource itself actually
changed) the updated
+ meta information is used and the cache lease extended as
appropriate.
+ </p>
+ <div class="consoleOutput">[HttpClientWorker-1] DEBUG
AbstractRegistry - Cached object has expired for key :
transform/transform_back.xslt
+[HttpClientWorker-1] DEBUG SimpleURLRegistry - Perform RegistryEntry lookup
for key : transform/transform_back.xslt
+[HttpClientWorker-1] DEBUG AbstractRegistry - Expired version number is same
as current version in registry
+[HttpClientWorker-1] DEBUG AbstractRegistry - Renew cache lease for another
15s</div>
+ <p>
+ Thus the SimpleURLRegistry allows resource to be cached,
and updates are detected
+ so that the configuration changes could be reloaded
without restarting the
+ Synapse instance.
+ </p>
</subsection>
</section>
<p><a href="../samples.html">Back to Catalog</a></p>