You are viewing a plain text version of this content. The canonical link for it is here.
Posted to muse-dev@ws.apache.org by jr...@apache.org on 2005/07/26 23:51:28 UTC
svn commit: r225404 - in
/webservices/muse/trunk/src/site/content/xdocs/dev_guide: client.xml
debug.xml deploy.xml wsdl.xml wsdl_tool.xml
Author: jruzzi
Date: Tue Jul 26 14:51:24 2005
New Revision: 225404
URL: http://svn.apache.org/viewcvs?rev=225404&view=rev
Log:
updated tutorial
Added:
webservices/muse/trunk/src/site/content/xdocs/dev_guide/client.xml
webservices/muse/trunk/src/site/content/xdocs/dev_guide/debug.xml
webservices/muse/trunk/src/site/content/xdocs/dev_guide/deploy.xml
webservices/muse/trunk/src/site/content/xdocs/dev_guide/wsdl.xml
webservices/muse/trunk/src/site/content/xdocs/dev_guide/wsdl_tool.xml
Added: webservices/muse/trunk/src/site/content/xdocs/dev_guide/client.xml
URL: http://svn.apache.org/viewcvs/webservices/muse/trunk/src/site/content/xdocs/dev_guide/client.xml?rev=225404&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/dev_guide/client.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/dev_guide/client.xml Tue Jul 26 14:51:24 2005
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>SOAP Client</title>
+ </header>
+ <body>
+ <section id="intro">
+ <title>Introduction</title>
+ <p>MUSE includes a lightweight SOAP client that is used to test your services. The client is invoked using an Ant script, which is located in
+ <code>INSTALL_DIR/template/soapclient.xml</code>. Request and response messages are viewed in the Ant output. This section explains how to use the client and
+ how to build request SOAP messages for the client.</p>
+ </section>
+ <section>
+ <title>SOAP Files</title>
+ <p>The client reads a <code>.soap</code> file which contains the SOAP envelope to be sent. Examples of SOAP files are located in
+ <code>INSTALL_DIR/examples/filesystem/requests/</code>. Each file is named appropriately based on the operation it contains. Use these files as models when
+ creating your own .soap files. Make sure you modify the WS-Addressing header for the resource id to match the entry that is in the JNDI
+ configuration file and the resource id number for the instance you would like to invoke. This has to do with the home's implementation of <code>getInstance()</code>
+ and allows you to decide which instances are valid for sending requests. </p>
+ </section>
+ <section>
+ <title>Running the Client</title>
+ <p>To invoke the script:</p>
+ <ol>
+ <li>Make sure your WS Resource is deployed.</li>
+ <li>open a command prompt and change directories to <code>INSTALL_DIR/template/soapclient.xml</code>.</li>
+ <li>Run:
+ <source>ant -f soapclient.xml sendRequest -Durl=http://localhost:8080/muse/services/<em>your_service</em> -Dxml=./requests/Subscribe_updateMountPointProp.soap</source>
+ <p>Where <em>your_service</em> represents your WS Resource endpoint name, and the script name should be the name (including the path) of your .soap file.
+ </p>
+ </li>
+ </ol>
+ <note>You can add an entry to <code>build.properties</code> for <code>url</code> which will alleviate the need
+ to specify it on the command line.</note>
+ </section>
+ </body>
+</document>
Added: webservices/muse/trunk/src/site/content/xdocs/dev_guide/debug.xml
URL: http://svn.apache.org/viewcvs/webservices/muse/trunk/src/site/content/xdocs/dev_guide/debug.xml?rev=225404&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/dev_guide/debug.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/dev_guide/debug.xml Tue Jul 26 14:51:24 2005
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>Logging</title>
+ </header>
+ <body>
+ <section>
+ <title>Introduction</title>
+ <p>MUSE uses the Apache Commons Logging Framework with Log4j as the underlying logging system. You can configure Log4j using the log4j.properties
+ file. This includes changing log levels or where the output is emitted (e.g. stdout, log file, etc...). The properties file is located in the MUSE Web application in
+ the WEB-INF/classes directory.
+ </p>
+ </section>
+ <section>
+ <title>Changing Log Levels</title>
+ <p>Log4j uses the following log levels: DEBUG, INFO, WARN, ERROR, and FATAL. By default, MUSE is configured to emit INFO messages. To see more
+ detailed log messages, you must change the log level. The following example assumes Tomcat.</p>
+ <p>To change the logging level:</p>
+ <ol>
+ <li>Using a text editor, open the log4j.properties file located in the WEB-INF/classes directory of the deployed MUSE Web application.</li>
+ <li>Change the log level associated with the <code>log4j.category.org.apache.ws</code> package. For example:<source>
+log4j.category.org.apache.ws=DEBUG</source>
+ </li>
+ <li>Save the log4j.properties file.</li>
+ <li>Restart Tomcat.
+ <note>Log messages are displayed in Tomcat's standard output. If you are not using Tomcat, you may need to configure your Web container to include the output
+ in its standard output.</note>
+ </li>
+ </ol>
+ </section>
+ </body>
+</document>
Added: webservices/muse/trunk/src/site/content/xdocs/dev_guide/deploy.xml
URL: http://svn.apache.org/viewcvs/webservices/muse/trunk/src/site/content/xdocs/dev_guide/deploy.xml?rev=225404&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/dev_guide/deploy.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/dev_guide/deploy.xml Tue Jul 26 14:51:24 2005
@@ -0,0 +1,130 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>Deploy the service to the MUSE Web Application</title>
+ </header>
+ <body>
+ <section id="intro">
+ <title>Introduction</title>
+ <p>The quickest way to deploy your WS Resource is to use the generated build scripts. The scripts compile and delploy your WS
+ Resource to the MUSE Web application, which is an Apache-Axis Web application. This section describes how to use the
+ generated build scripts and also how the script works so you can build your own scripts.</p>
+ </section>
+ <section>
+ <title>Using the generated build scripts</title>
+ <p>The Wsdl2Java tool generates an Ant build script that is used to compile and deploy your WS Resource. The script is located in the
+ output directory under the subdirectory for you WS Resource (e.g., <code>generated/</code>
+ <em>
+ <code>service_name</code>
+ </em>).</p>
+ <p>To compile and deploy using the Ant script</p>
+ <ol>
+ <li>In your output directory, edit build.properties and modify the <code>muse.webapp.dir</code>. If you are using
+ Tomcat and have <code>CATALINA_HOME</code> set, you do not need to modify this property.</li>
+ <li>From a command prompt, change directories to <code>generated/</code>
+ <em>
+ <code>service_name</code>
+ </em>
+ </li>
+ <li>Run:</li>
+ </ol>
+ <source><![CDATA[
+ ant compile deploy ]]></source>
+ <p>Start Tomcat and verify that the service is deployed by going to
+ <a href="http://localhost:8080/muse/servlet/AxisServlet">http://localhost:8080/muse/servlet/AxisServlet</a>
+ </p>
+ </section>
+ <section id="steps">
+ <title>Manually Deploying your Service</title>
+ <p>In this section we will describe how to manually deploy your service. We will describe each step in the process.</p>
+ <ol>
+ <li>
+ <strong>Copy your WSDL file.</strong>
+ <p>Your WSDL file needs to be copied to an appropriate location in the webapp. We recommend you put it in the
+ <code>muse/WEB-INF/classes/wsdl</code> directory. This allows Axis to reference it from the classpath and avoids the need to
+ hard-code a location on your file system. This location is used when registering the service in the
+ <code>server-config.wsdd</code> file.
+ </p>
+ </li>
+ <li>
+ <strong>Copy your classes.</strong>
+ <p>You will need to copy any .class files, generated by Wsdl2Java or hand written, to the <code>muse/WEB-INF/classes/</code> directory so that your service
+ can be created by Axis and MUSE.</p>
+ </li>
+ <li>
+ <strong>Update the jndi-config.xml file.</strong>
+ <p>The jndi-config.xml contains information about your service, resource, home and resource identifier. This information is necessary for
+ MUSE to create your home and handle requests for your service. It will setup the in-memory JNDI context for your classes.
+ Here is the entry that was used for the FileSystem example:</p>
+ <source><![CDATA[ <service name="filesystem">
+ <resource name="home" type="example.filesystem.FileSystemHome">
+ <resourceParams>
+ <parameter>
+ <name>serviceClassName</name>
+ <value>example.filesystem.FileSystemService</value>
+ </parameter>
+ <parameter>
+ <name>resourceClassName</name>
+ <value>example.filesystem.FileSystemResource</value>
+ </parameter>
+ <parameter>
+ <name>wsdlTargetNamespace</name>
+ <value>http://ws.apache.org/resource/example/filesystem</value>
+ </parameter>
+ <parameter>
+ <name>resourceIdentifierReferenceParameterName</name>
+ <value>{http://ws.apache.org/resource/example/filesystem}ResourceIdentifier</value>
+ </parameter>
+ </resourceParams>
+ </resource>
+ </service>]]></source>
+ <p>The<code> name</code> attribute is a unique name in the config file to denote your service in JNDI. The resource "name" attribute is used for locating your home
+ instance, and is named <code>home</code>. Notice <code>serviceClassName</code> points to the clasname for the service class. The same is said for the
+ <code>resourceClassName</code>. The <code>wsdlTargetNamespace </code> is the target namespace from your WSDL.
+ </p>
+ <p>The <code>resourceIdentifierReferenceParameterName</code> represents the name of the WS-Addressing-header that is used to
+ extract a unique resource identifier to lookup a specific WS resource instance. This value should be a QName that includes the local
+ reference parameter name in the format <em>
+ <code>{target namespace}qualified name of a reference parameter</code>
+ </em>. If you omit
+ this entry, it is assumed that the service is a <strong>
+ <code>SINGLETON</code>
+ </strong> service and no resource id is expected in the
+ WS-Addressing headers.
+ </p>
+ </li>
+ <li>
+ <strong>Update the server-config.wsdd file</strong>
+ <p>The <code>server-config.wsdd</code> file is the configuration file for the Axis SOAP engine,
+ which is bundled with MUSE. This file is located in the <code>muse/WEB-INF/</code> directory.
+ See the <a href="ext:ws.apache.org/axis">Axis</a> documentation for complete instructions about <code>server-config.wsdd</code>
+ </p>
+ <p>The file contains a deployment entry for each Web service. For example, the FileSystem service example is:
+ </p>
+ <source><![CDATA[ <service name="filesystem" provider="java:WSRF" style="document" use="literal">
+ <wsdlFile>/wsdl/FileSystem.wsdl</wsdlFile>
+ <requestFlow>
+ <handler type="java:org.apache.axis.handlers.JAXRPCHandler">
+ <parameter name="className" value="org.apache.axis.message.addressing.handler.AxisServerSideAddressingHandler"/>
+ <parameter name="referencePropertyNames" value="*"/>
+ </handler>
+ </requestFlow>
+ </service>]]></source>
+ <p>The service <code>name</code> attribute is the endpoint name and should be the same as the port's <code>name</code> attribute
+ from your WSDL file. This will ensure people consuming your WSDL will be able to invoke your service.
+ </p>
+ <p>Notice the entry for <code>wsdlFile</code> which points to the <code>/wsdl/FileSystem.wsdl</code>.
+ This translates to the wsdl directory under the <code>WEB-INF/classes</code> directory.
+ </p>
+ <p>The last part is the <code>requestFlow</code>. This xml fragment is necessary to ensure the
+ requests are routed through the WS-Addressing handler. This is static and should
+ always be present. We did not define it globally in case there were other services
+ defined which will not use WS-Addressing.
+ </p>
+ </li>
+ </ol>
+ </section>
+ </body>
+</document>
Added: webservices/muse/trunk/src/site/content/xdocs/dev_guide/wsdl.xml
URL: http://svn.apache.org/viewcvs/webservices/muse/trunk/src/site/content/xdocs/dev_guide/wsdl.xml?rev=225404&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/dev_guide/wsdl.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/dev_guide/wsdl.xml Tue Jul 26 14:51:24 2005
@@ -0,0 +1,99 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>Composing a MUWS WSDL</title>
+ </header>
+ <body>
+ <section>
+ <title>Using the MUWS Template</title>
+ <p>The Web Services Description Language (WSDL) is used to expose resources and notifications as WS-Resources and also includes optional fields, operations, and
+ notifications that may be included in the definition of a resource that allow management applications to manage the resource in a standardized fashion. The WSDL must
+ conform to the conventions as described in the MUWS specification as well as the conventions described in the <a href="ext:spec">WSRF</a> and <a href="ext:wsn">WSN</a>
+ Specifications. To make it easier to write a MUWS WSDL, MUSE provides a template WSDL that can be used as a starting point. The template saves a good deal of time
+ and is less error-prone than writing a MUWS-compliant WSDL from scratch.
+ </p>
+ <p>To use the template:</p>
+ <ol>
+ <li>Using a text or XML editor, open <code>INSTALL_DIR/template/_TEMPLATE_.wsdl</code>.</li>
+ <li>Save the file with a new name (e.g., <em>nameOfYourService</em>.wsdl).</li>
+ <li>Modify your WSDL based on the instructions in the template and the information below.</li>
+ </ol>
+ <warning>Do not modify the original template file.</warning>
+ </section>
+ <section>
+ <title>Defining the MUWS PortType</title>
+ <p>A MUWS WSDL should contain only one portType. The portType aggregates operations from the WSRF, WSN, and MUWS specification-defined portTypes
+ as well as custom resource-specific operations. If you copied the WSDL template file as described above, your WSDL file
+ already contains a MUWS-compliant portType. You simply have to rename the portType (<code>MyPortType</code>) and the binding (MySoapHttpBinding) and
+ uncomment the blocks corresponding to whichever optional portTypes you want your WS-Resource to support.
+ </p>
+ <note>The WSRF portTypes - from WS-ResourceProperties (WSRF-RP) and WS-ResourceLifetime (WSRF-RL)- and their associated operations are described in the Apache
+ WSRF <a href="ext:wsrfwsdl">WSDL Documentation</a>. The instructions include defining the resource properties document, custom properties, and custom
+ operations. The WSN portTypes - from WS-BaseNotification - and their associated operations are described in the Apache Pubscribe
+ <a href="ext:pubwsdl">WSDL Documentation</a>. The instructions include defining notification producers and notification consumers.
+ </note>
+ <section>
+ <title>MUWS PortTypes</title>
+ <p>The MUWS specification defines eight portTypes. However, only the <code>Relationships</code> portType contains an operation that can be added to the portType of your
+ WSDL. The other portTypes are used to organize and expose resource properties and need to be defined in the <code>schema</code> section of a WSDL as you would
+ any other resource property. Among these properties, the ResourceID property is required and must be included in a MUWS compliant WSDL.
+ </p>
+ <table>
+ <tr>
+ <th>PortType</th>
+ <th>Operations</th>
+ <th>Properties</th>
+ </tr>
+ <tr>
+ <td>Identity</td>
+ <td/>
+ <td>ResourceId</td>
+ </tr>
+ <tr>
+ <td>ManageabilityCharacteristics</td>
+ <td/>
+ <td>ManageabilityCapability</td>
+ </tr>
+ <tr>
+ <td>CorrelatableProperties</td>
+ <td/>
+ <td>CorrelatableProperties</td>
+ </tr>
+ <tr>
+ <td>Description</td>
+ <td/>
+ <td>Caption, Description, Version</td>
+ </tr>
+ <tr>
+ <td>OperationalStatus</td>
+ <td/>
+ <td>OperationalStatus</td>
+ </tr>
+ <tr>
+ <td>Metrics</td>
+ <td/>
+ <td>CurrentTime</td>
+ </tr>
+ <tr>
+ <td>Relationships</td>
+ <td>QueryRelationshipsByType</td>
+ <td>Relationship</td>
+ </tr>
+ <tr>
+ <td>RelationshipResource</td>
+ <td/>
+ <td>Name, Type, Participant</td>
+ </tr>
+ </table>
+ </section>
+ <section>
+ <title>WS-MetadataExchange PortType</title>
+ </section>
+ <p>Apache MUWS also includes implementations for two operations that are defined in the WS Metadata Exchange Specification. This specification is not part of MUWS. See the
+ Including Metadata section for more information on how to implement metadata for your resources.
+ </p>
+ </section>
+ </body>
+</document>
Added: webservices/muse/trunk/src/site/content/xdocs/dev_guide/wsdl_tool.xml
URL: http://svn.apache.org/viewcvs/webservices/muse/trunk/src/site/content/xdocs/dev_guide/wsdl_tool.xml?rev=225404&view=auto
==============================================================================
--- webservices/muse/trunk/src/site/content/xdocs/dev_guide/wsdl_tool.xml (added)
+++ webservices/muse/trunk/src/site/content/xdocs/dev_guide/wsdl_tool.xml Tue Jul 26 14:51:24 2005
@@ -0,0 +1,141 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+ "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+ <header>
+ <title>Using Wsdl2Java</title>
+ </header>
+ <body>
+ <section>
+ <title>Introduction</title>
+ <p>The Wsdl2Java tool is used to generate a set of artificats for a MUWS WS Resource. The artifiacts include:</p>
+ <ul>
+ <li>A set of Java classes based on the WSDL definition. This includes a service, resource, and
+ home class. Some of the Java code will need to be manually edited after the files are generated.</li>
+ <li>Interfaces for custom operations.</li>
+ <li>Java bindings for all Types that are defined in the WSDL. The interfaces and classes are
+ created using the <a href="ext:xmlbeans.apache.org">XMLBeans</a> schema compiler</li>
+ <li>an Axis Web Service Deployment Descriptor (WSDD) for your service (<em>service</em>_deploy.wsdd). This file is used to deploy your service to
+ Axis.</li>
+ <li>A JNDI Resource configuration file for your service (<em>service</em>_jndi-config.xml). The file is used to setup the in-memory JNDI context for
+ your generated service, resource, and home classes.</li>
+ </ul>
+ <p>The tool saves you a great deal of time, since these files do not have to be created from scratch. You simply pass the tool a MUWS WSDL and the files
+ are automatically generated. You can use the tool directly or you can use an Ant task.
+ </p>
+ </section>
+ <section>
+ <title>Ant Task</title>
+ <p>The Wsdl2Java tool can be invoked using the <code>wsdl2Java</code> Ant task (<code>org.apache.ws.muws.tool.MuwsWsdl2JavaTask</code>) which extends the
+ Apache Pubscribe Ant task (<code>org.apache.ws.notification.tool.WsnWsdl2JavaTask</code>). The
+ <code>INSTALL_DIR/template/build.xml</code> script contains a target that already implements this task.</p>
+ <p>To use the target:</p>
+ <ol>
+ <li>Copy INSTALL_DIR/template/build.xml and build.properties to any directory. This directory will be referred to as <code>WORK_DIR</code>.</li>
+ <li>Modify build.properties and modify the <code>muse.webapp.dir</code> property and any proxy settings if applicable.</li>
+ <li>Copy your MUWS WSDL to <code>WORK_DIR</code>. If your WSDL depends on a schema that is not accessible over the network, you must copy the
+ schema to this directory as well.</li>
+ <li>From a command prompt, change directories to <code>WORK_DIR</code>.</li>
+ <li>Run the following command.
+ <source>ant generate</source>
+ <p>Check <code>WORK_DIR/generated</code> to see the generated files.
+ </p>
+ </li>
+ </ol>
+ <section>
+ <title>Task Definition</title>
+ <p>The task is defined as follows :</p>
+ <source><![CDATA[
+<taskdef name="MuwsWsdl2JavaTask"
+ classname="org.apache.ws.muws.tool.MuwsWsdl2JavaTask"
+ classpath="path/to/muse.jar" /> ]]></source>
+ <p>
+ <strong>Parameters</strong>
+ </p>
+ <p>The task takes the following parameters:</p>
+ <table>
+ <tr>
+ <th>Attribute</th>
+ <th>Description</th>
+ <th>Required</th>
+ </tr>
+ <tr>
+ <td>wsdl</td>
+ <td>Enter the full path to a WSRF WSDL file.</td>
+ <td>Yes, unless a <code>wsdls</code> parameter is used. </td>
+ </tr>
+ <tr>
+ <td>wsdls</td>
+ <td>Entered as a nested element following the rules of fileset. This parameter is used instead of the <code>wsdl</code> parameter to indicate multiple
+ WSRF WSDLs to be converted.</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>classpath</td>
+ <td>The classpath to be passed to the XMLBeans schema compiler. The classpath should reference the <code>INSTALL_DIR/wsrf/webapp/lib</code>
+ and <code>/classes</code> directories.</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>classpathref</td>
+ <td>Adds a classpath, given as reference to a path defined elsewhere.</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>outputdir</td>
+ <td>Enter a directory where the generated files will be placed.</td>
+ <td>Yes</td>
+ </tr>
+ <tr>
+ <td>verbose</td>
+ <td>Enter <code>true</code> to increase build message output.</td>
+ <td>No, default is <code>false</code>
+ </td>
+ </tr>
+ <tr>
+ <td>proxyHost</td>
+ <td>Enter the Host IP address of a proxy that is used to connect to the Internet.</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>proxyPort</td>
+ <td>Enter the Port number of a proxy that is used to connect to the Internet.</td>
+ <td>No</td>
+ </tr>
+ <tr>
+ <td>nonProxyHosts</td>
+ <td>Enter the Host IP address separated by "|" to indicate Hosts that do not require a proxy.</td>
+ <td>No</td>
+ </tr>
+ </table>
+ <p>
+ <strong>Example</strong>
+ </p>
+ <p>The following example generates files for a single WSDL and places the generated files in a directory
+ named <code>/generated</code>. To simplify the example, the classpath is referenced. You must set the <code>${muse.home}</code> Ant property to <code>
+ INSTALL_DIR</code> (e.g. /opt/muse-1.0beta).</p>
+ <source><![CDATA[
+
+ <property name="muse.webapp.dir" location="${muse.home}/webapps/muse" />
+ <path id="muse.classpath.id">
+ <pathelement location="${muse.webapp.dir}/WEB-INF/classes" />
+ <fileset dir="${muse.webapp.dir}/WEB-INF/lib" includes="*.jar" />
+ </path>
+
+ <taskdef name="wsdl2Java" classname="org.apache.ws.muws.tool.MuwsWsdl2JavaTask" classpath="muse.classpath.id" />
+
+ <wsdl2Java wsdl="path/to/your.wsdl"
+ outputdir="generated"
+ classpath="muse.classpath.id" />]]></source>
+ <p>If you want to generate the files for multiple WSDLs, you can use:</p>
+ <source><![CDATA[
+
+ <wsdl2Java outputdir="generated" classpath="muse.classpath.id" />
+ <wsdls dir="path/to/wsdls/">
+ <include name="**/*.wsdl" />
+ </wsdls>
+ </wsdl2Java>]]></source>
+ </section>
+ </section>
+ </body>
+</document>
---------------------------------------------------------------------
To unsubscribe, e-mail: muse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: muse-dev-help@ws.apache.org