blob: 3f4e16a47d86a44547843e161959d957c94cbcf4 [file]
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<document>
<properties>
<title>Apache Synapse - Sample 600</title>
</properties>
<body>
<section name="Sample 600: File Hierarchy Based Configuration Builder">
<p>
In this sample we will be looking at how Synapse configuration files can be
organized into a single rooted file hierarchy. We will be using the following set
of files and directories.
</p>
<div class="consoleOutput">synapse_sample_600.xml
|-- endpoints
| `-- foo.xml
|-- events
| `-- event1.xml
|-- local-entries
| `-- bar.xml
|-- proxy-services
| |-- proxy1.xml
| |-- proxy2.xml
| `-- proxy3.xml
|-- registry.xml
|-- sequences
| |-- custom-logger.xml
| |-- fault.xml
| `-- main.xml
|-- synapse.xml
`-- tasks
`-- task1.xml</div>
<subsection name="Objective">
<p>
Demonstrate the ability to load the Synapse configuration from a file hierarchy
</p>
</subsection>
<subsection name="Pre-requisites">
<p>
<ul>
<li>
Deploy the SimpleStockQuoteService in the sample Axis2 server and start Axis2
</li>
<li>
Start Synapse using the configuration numbered 600 (this is available
in the directory at repository/conf/sample/synapse_sample_600.xml)
<div class="command">
Unix/Linux: sh synapse.sh -sample 600<br/>
Windows: synapse.bat -sample 600
</div>
</li>
</ul>
</p>
</subsection>
<subsection name="Description">
<p>
Go to the SYNAPSE_HOME/repository/conf/sample directory and locate the subdirectory
named synapse_sample_600.xml within it. When Synapse is started with the sample
configuration 600, Synapse will load the configuration from this directory. You
will find a number of subdirectories and a set of XML files in each of those
directories. Synapse will parse all the XML files in this file hierarchy and
construct the full Synapse configuration at startup. As a result when this sample
is executed Synapse will start with four proxy services, several sequences, a task,
an event source and some endpoint and local entry definitions.
</p>
<p>
The names of the subdirectories (eg: proxy-services, sequences, endpoints) are
fixed and hence cannot be changed. Also the registry definition should go into a
file named registry.xml which resides at the top level of the file hierarchy. It
can also be specified in the synapse.xml file at top level. This synapse.xml file
can include any item that can be normally defined in a synapse.xml file. The files
which define proxy services, sequences, endpoints etc can have any name. These
configuration files must have the .xml extension at the end of the name. Synapse
will ignore any files which do not have the .xml extension.
</p>
<p>
None of the directories and files in the sample file hierachy are mandatory. You
can leave entire directories out if you do not need them. For example if your
configuration does not contain any proxy services you can leave the
subdirectory named proxy-services out.
</p>
<p>
To use this feature you should simply pass a path to an existing directory when
starting the Synapse server. The SynapseServer class which is responsible for
starting the server accepts a file path as an argument from where to
load the configuration. Generally we pass the path to the synapse.xml file as the
value of this argument. If you pass a directory path instead, Synapse configuration
will be loaded from the specified directory. Note the following line on the console
when Synapse is loading the configuration from a file hierarchy.
</p>
<div class="consoleOutput">2009-08-04 14:14:42,489 [-] [main] INFO SynapseConfigurationBuilder Loaded Synapse configuration from the directory hierarchy at : /home/synapse/repository/conf/sample/synapse_sample_600.xml</div>
<p>
This feature comes in handy when managing large Synapse configurations. It is
easier to maintain a well structured file hierarchy than managing one large, flat
XML file.
</p>
</subsection>
</section>
<p><a href="../samples.html">Back to Catalog</a></p>
</body>
</document>