You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pubscribe-commits@ws.apache.org by jr...@apache.org on 2005/07/20 00:58:54 UTC

svn commit: r219797 - in /webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide: client.xml consumer.xml deploy.xml home.xml index.xml subscription.xml wsdl.xml

Author: jruzzi
Date: Tue Jul 19 15:58:53 2005
New Revision: 219797

URL: http://svn.apache.org/viewcvs?rev=219797&view=rev
Log:
updated dev guide

Added:
    webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/client.xml
    webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/consumer.xml
    webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/deploy.xml
    webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/home.xml
Modified:
    webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/index.xml
    webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/subscription.xml
    webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/wsdl.xml

Added: webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/client.xml
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/client.xml?rev=219797&view=auto
==============================================================================
--- webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/client.xml (added)
+++ webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/client.xml Tue Jul 19 15:58:53 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>Pubscribe 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/pubscribe/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/pubscribe/trunk/src/site/content/xdocs/dev_guide/consumer.xml
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/consumer.xml?rev=219797&view=auto
==============================================================================
--- webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/consumer.xml (added)
+++ webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/consumer.xml Tue Jul 19 15:58:53 2005
@@ -0,0 +1,107 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+          "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+	<header>
+		<title>Notification Consumer</title>
+	</header>
+	<body>
+		<section id="intro">
+			<title>Introduction</title>
+			<p>This section provides instructions for creating a notification consumer resource. A service that acts as a notification consumer (implements the WSN 
+			<code>NotificationConsumer</code> portType) can receive SOAP notification messages sent by a notification producer. The consumer 
+			only receives messages for notifications to which it is subscribed.  
+			</p>
+			<p>The Wsdl2Java tool generates the same artifacts for a notification consumer as it does for a notification producer. In particular, the service, resource, and home class are 
+			generated but need to be modified specifically for your consumer. The topics in this section describe how to modify these classes. An example notification consumer for the 
+			filesystem example is provided in the <code>INSTALL_DIR/examples/consumer</code> and discussed below. Initially, you should model your consumer based on the example to 
+			ensure that you 	write a valid consumer.
+			</p>
+			<note>Before completing the instructions below, you must create a WSDL that implements the Notify operation from the <code>NotificationConsumer</code> portType and run the 
+			Wsdl2Java tool on the WSDL. If you use the INSTALL_DIR/template/_TEMPLATE_.wsdl to create the WSDL, this operation is included and only needs to be uncommented. A completed 
+			WSDL is provided for the consumer example.</note>
+		</section>
+		<section>
+			<title>Modify the Service Class</title>
+			<p>A method for the <code>Notify</code> operation is added to the service class. The implementation of the method is dependant on whatever features you want to include for 
+			your consumer. In the consumer example, a property is used to retrieve the last notification message. In this case, the <code>notify</code> method allows a 
+			.jsp to retrieve and display the current notification message. The method is implemented as follows:</p>
+			<source>
+public void notify(org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.NotifyDocument notifyDocument)
+    {
+        //get the property set
+        org.apache.ws.resource.properties.ResourcePropertySet resourcePropertySet = ((org.apache.ws.resource.PropertiesResource)getResource()).getResourcePropertySet();
+
+        //get the property
+        org.apache.ws.resource.properties.ResourceProperty resourceProperty = resourcePropertySet.get(ConsumerPortPropertyQNames.LASTMESSAGE);
+        resourceProperty.clear();//clear old notifs
+        
+        //add the new entry
+        //build the LastMessage type for updating this resoruce property
+        LastMessageDocument lastMessageDocument = LastMessageDocument.Factory.newInstance();
+        org.apache.ws.resource.example.notifConsumer.LastMessageType lastMessageType = lastMessageDocument.addNewLastMessage();
+        lastMessageType.setOccurred(java.util.Calendar.getInstance());
+        org.apache.xmlbeans.XmlObject lastMessageNotif = lastMessageType.addNewNotification();
+        org.apache.ws.util.XmlBeanUtils.addChildElement(lastMessageNotif, notifyDocument);
+
+        //add the LastMessageDocument to the resource property
+        resourceProperty.add(lastMessageDocument);
+    }</source>
+		</section>
+		<section>
+			<title>Modify the resource class</title>
+			<p>The resource class is used to setup and initialize any resource properties. For the consumer example, a single resource property is defined and called 
+			<code>LastMessage</code>. The resource class <code>init()</code> method is modified to add this property to the <code>ResourcePropertySet</code>:
+			</p>
+			<source>
+    public void init()
+    {
+        super.init();               
+
+        /**
+		 * The ResourcePropertySet which contains all the defined ResourceProperties
+		 */
+		org.apache.ws.resource.properties.ResourcePropertySet resourcePropertySet = getResourcePropertySet();
+		org.apache.ws.resource.properties.ResourceProperty resourceProperty = null;
+	try{	
+		// init the {http://ws.apache.org/resource/example/NotifConsumer}LastMessage Resource Property
+		resourceProperty = resourcePropertySet.get(ConsumerPortPropertyQNames.LASTMESSAGE);
+		}
+	catch (Exception e)
+	{
+	   throw new javax.xml.rpc.JAXRPCException("There was a problem in initializing your resource properties.  Please check your init() method. Cause: " + e.getLocalizedMessage());
+	}		
+	        
+    }
+			</source>
+		</section>
+		<section>
+			<title>Modify the Home Class</title>
+			<p>The home class is used to lookup the resource instance. It can act as a factory for creating instances upon request, or build all instances. It is meant to be the entry point for 
+			locating a resource instance. For the consumer example the <code>getInstance()</code> method is modified to get an instance of the consumer resource.</p>
+			<source>
+ private static Resource m_resource = null; 
+
+  public Resource getInstance( ResourceContext resourceContext )
+            throws ResourceException,
+            ResourceContextException,
+            ResourceUnknownException
+    {
+        if(m_resource == null)
+	    {
+			//singleton
+	        ConsumerPortResource myresource = new ConsumerPortResource();
+	        myresource.init();
+			//the next line will create an EPR
+			EndpointReference epr = getEndpointReference(resourceContext.getBaseURL(  ) + "/" + getServiceName().getLocalPart() , null, SPEC_NAMESPACE_SET.getAddressingNamespace());
+			myresource.setEndpointReference(epr); //make sure to set the EPR on your new instance
+			m_resource = myresource;
+	    }
+
+        return m_resource;
+    }</source>
+			<note>A client for the consumer must use the EPR to access the consumer resource. The EPR is returned by the notification producer when you subscribe to a notification 
+			topic.</note>
+		</section>
+	</body>
+</document>

Added: webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/deploy.xml
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/deploy.xml?rev=219797&view=auto
==============================================================================
--- webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/deploy.xml (added)
+++ webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/deploy.xml Tue Jul 19 15:58:53 2005
@@ -0,0 +1,126 @@
+<?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 Pubscribe 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 Pubscribe 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>pubscribe.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/pubscribe/servlet/AxisServlet">http://localhost:8080/pubscribe/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>pubscribe/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>pubscribe/WEB-INF/classes/</code> directory so that your service 
+					can be created by Axis and Pubscribe.</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 key.  This information is necessary for 
+					Pubscribe 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 Pubscribe. This file is located in the <code>pubscribe/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/pubscribe/trunk/src/site/content/xdocs/dev_guide/home.xml
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/home.xml?rev=219797&view=auto
==============================================================================
--- webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/home.xml (added)
+++ webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/home.xml Tue Jul 19 15:58:53 2005
@@ -0,0 +1,82 @@
+<?xml version="1.0"?>
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN"
+          "http://forrest.apache.org/dtd/document-v20.dtd">
+<document>
+	<header>
+		<title>Writing a Home class</title>
+	</header>
+	<body>
+		<section id="intro">
+			<title>Introduction</title>
+			<p>The home class is used to lookup the resource instance. It can act as a factory
+         		for creating instances upon request, or build all instances. It is meant
+         		 to be the entry point for locating a resource instance.
+         		</p>
+         		<p>If you use the Wsdl2Java tool, the resource class is automatically generated, but will need to modified to create instances of your resource. This section will 
+         		describe how to write a home class for your resource class. Initially, you should model your resource off of the included <code>FilesystemHome</code> example 
+         		to ensure that you write a valid home class for your resource class.</p>
+		</section>
+		<section id="class-declaration">
+			<title>Class Declaration</title>
+			<p>When declaring your home you <strong>should</strong> extend <code>AbstractResourceHome</code>.  Extending <code>AbstractResourceHome</code> 
+			will provide services for caching instances and looking them up. It will also ensure
+       		that the correct interfaces are implemented so that Apache WSRF can interact with your home.
+     			</p>
+			<p>The <code>FileSystemHome</code> class extends <code>AbstractResourceHome</code> and implements <code>Serializable</code>:</p>
+			<source>public class FileSystemHome
+        extends AbstractResourceHome
+        implements Serializable</source>
+		</section>
+		<section id="ops">
+			<title>Operations</title>
+			<p>If you extend <code>AbstractResourceHome</code>, the only required operation you will need to implement is:</p>
+			<source>public Resource getInstance( ResourceContext resourceContext )</source>
+			<p>The <code>getInstance(...)</code> operation provides the ability for you to intercept the request for
+        		 retrieving an instance. In the FileSystem example, we use the operation to determine
+        		 if the requested resource instance is a valid filesystems (i.e. one that is being managed
+         		via WSRF); if it is not, we throw an exception.</p>
+			<source>public Resource getInstance( ResourceContext resourceContext )
+            throws ResourceException,
+            ResourceContextException,
+            ResourceUnknownException
+    {
+        ResourceKey key = resourceContext.getResourceKey();
+        Resource resource = null;
+        try
+        {
+            resource = find( key );
+        }
+        catch ( ResourceException re )
+        {
+            Object id = key.getValue();
+            /**
+             * Determine if the passed-in key is, in fact, something we expect.
+             */
+            if ( id.equals( "/dev/vg00/lvol1" ) || id.equals( "/dev/vg00/lvol2" ) )
+            {
+                try
+                {
+                    resource = createInstance( key);
+                }
+                catch ( Exception e )
+                {
+                    throw new ResourceException( e );
+                }
+                add( key, resource );
+            }
+            else
+            {
+                throw new ResourceUnknownException( id,
+                        resourceContext.getServiceName() );
+            }
+        }
+        return resource;
+    }</source>
+			<p>Notice the method makes calls to <code>find(...) </code>and <code>createInstance(...)</code>. These operations are
+         		provided by the <code>AbstractResourceHome</code> superclass. They provide functions like caching and
+         		instantiating instances.</p>
+			<note>Many of the operations in the <code>AbstractResourceHome</code> may be overridden in your Home
+            		class, if you have a need to extend its functionality.</note>
+		</section>
+	</body>
+</document>

Modified: webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/index.xml
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/index.xml?rev=219797&r1=219796&r2=219797&view=diff
==============================================================================
--- webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/index.xml (original)
+++ webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/index.xml Tue Jul 19 15:58:53 2005
@@ -33,7 +33,8 @@
 				<li>WS-Topics - Defines how a hierarchy of notification topics can be described and how XPath-like topic expressions can be used to reference one or more topics in 
 				the topic hierarchy.</li>
 				<li>WS-BrokeredNotification - Defines how a simple resource can offload the responsibilities of managing subscriptions to another entity called a broker. Having a broker 
-				aggregate messages from many resources also enables the ability to provide different notification channels through the use of topics.</li>						</ul>
+				aggregate messages from many resources also enables the ability to provide different notification channels through the use of topics.</li>
+			</ul>
 		</section>
 		<section>
 			<title>Conceptual Overview</title>

Modified: webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/subscription.xml
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/subscription.xml?rev=219797&r1=219796&r2=219797&view=diff
==============================================================================
--- webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/subscription.xml (original)
+++ webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/subscription.xml Tue Jul 19 15:58:53 2005
@@ -3,13 +3,90 @@
           "http://forrest.apache.org/dtd/document-v20.dtd">
 <document>
 	<header>
-		<title>Composing a WSRF WSDL</title>
+		<title>Using the Subscription Manager</title>
 	</header>
 	<body>
 		<section>
-			<title>Using the WSRF WSDL Template</title>
-			<p>TODO. 
-             		</p>
+			<title>Introduction</title>
+			<p>The WS-BaseNotification specification includes a portType called <code>SubscriptionManager</code>. The portType includes two operations 
+			(<code>PauseSubscription</code> and <code> ResumeSubscription</code>) and a set of resource properties: <code>ConsumerReference</code>, 
+			<code>TopicExpression</code>, <code>UseNotify</code>, <code>Precondition</code>, <code>Selector</code>, <code>SubscriptionPolicy</code>, and 
+			<code>CreationTime</code>. Pubscribe implements this portType and its required resource properties by default. Therefore, it does not have to be defined in a WSRF/WSN WSDL. 
+			This insures that all the resource properties are initialized without having to directly interact with the subscription manager. 
+           		</p>
+			<note>In Pubscribe, a notification producer uses the subscription manager to create a subscription whenever a <code>Subscribe</code> message is received for a topic.</note>
+		</section>
+		<section>
+			<title>Subscription Manager Messages</title>
+			<p>Messages to pause or resume a subscription are sent to the <code>SubscriptionManager</code> service. This service is deployed by default when you deploy the Pubscribe Web 
+			application. The <code>SubscriptionManager</code> service can also be used to send <code>Destroy</code>, <code>SetTerminationTime</code>, and 
+			<code>GetResourceProperty</code> messages. These operations are defined in the WSRF WS-ResourceLifetime and WS-ResourceProperties specifications respectively. 
+			When you send messages to the subscription manager, the SOAP header must include the EPR and the Resource Identifier for the subscription. These values 
+			are returned in the response message when you subscribe to a topic.
+			</p>
+			<p>The below requests demonstrate the messages to pause, resume, and destroy a subscription and are taken from the filesystem example. In the header, notice the EPR that is entered in 
+			the <code>wsa:To</code> element and the subscription identifier that is entered in the <code>sub:ResourceIdentifier</code> element.
+			</p>
+			<section>
+				<title>PauseSubscription</title>
+				<source><![CDATA[
+<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/" 
+	  xmlns:wsnt="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd"
+          xmlns:sub="http://ws.apache.org/notification/base/service/SubscriptionManager">
+
+   <Header xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+      <wsa:To mustUnderstand="1">http://localhost:8080/pubscribe/services/SubscriptionManager</wsa:To>
+      <wsa:Action mustUnderstand="1">http://localhost:8080/pubscribe/services/SubscriptionManager/yourWsdlRequestName</wsa:Action>
+      <sub:ResourceIdentifier mustUnderstand="1">4623a820-7483-11d9-9a53-fe396408008d</sub:ResourceIdentifier>
+   </Header>
+
+   <Body>
+      <wsnt:PauseSubscription />
+   </Body>
+
+</Envelope>]]></source>
+			</section>
+			<section>
+				<title>ResumeSubscription</title>
+				<source><![CDATA[
+<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/" 
+	  xmlns:wsnt="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd"
+          xmlns:sub="http://ws.apache.org/notification/base/service/SubscriptionManager">
+
+   <Header xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+      <wsa:To mustUnderstand="1">http://localhost:8080/pubscribe/services/SubscriptionManager</wsa:To>
+      <wsa:Action mustUnderstand="1">http://localhost:8080/pubscribe/services/SubscriptionManager/yourWsdlRequestName</wsa:Action>
+      <sub:ResourceIdentifier mustUnderstand="1">4623a820-7483-11d9-9a53-fe396408008d</sub:ResourceIdentifier>
+   </Header>
+
+   <Body>
+      <wsnt:ResumeSubscription />
+   </Body>
+
+</Envelope>]]></source>
+			</section>
+			<section>
+				<title>Destroy</title>
+				<p>The <code>SubscriptionManager</code> also includes the Destroy operation. This operation is defined in the WS-ResourceLifetime specifcation. The Destroy operation can be 
+				used to destroy a subscription. Like pause and resume, you must provide the EPR and the subscription's <code>ResourceIdentifier</code>.</p>
+				<source><![CDATA[
+<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/" 
+	  xmlns:wsnt="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd"
+	  xmlns:wsrlw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd"
+         xmlns:sub="http://ws.apache.org/notification/base/service/SubscriptionManager">
+
+   <Header xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
+      <wsa:To mustUnderstand="1">http://localhost:8080/pubscribe/services/SubscriptionManager</wsa:To>
+      <wsa:Action mustUnderstand="1">http://localhost:8080/pubscribe/services/SubscriptionManager/yourWsdlRequestName</wsa:Action>
+      <sub:ResourceIdentifier mustUnderstand="1">6d8e2160-f89f-11d9-9c4c-9e6bfb2aa2bf</sub:ResourceIdentifier>
+   </Header>
+
+   <Body>
+      <wsrlw:Destroy />
+   </Body>
+
+</Envelope>]]></source>
+			</section>
 		</section>
 	</body>
 </document>

Modified: webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/wsdl.xml
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/wsdl.xml?rev=219797&r1=219796&r2=219797&view=diff
==============================================================================
--- webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/wsdl.xml (original)
+++ webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/wsdl.xml Tue Jul 19 15:58:53 2005
@@ -38,9 +38,10 @@
 					<li>NotificationProducer - This portType allows a resource to advertise notification topics and allows clients to subscribe to these topics. To implement this portType, 
 					uncomment the three NotificationProducer property references (<code>wsnt:Topic</code>, <code>wsnt:FixedTopicSet</code>, and 
 					<code>wsnt:TopicExpressionDialects</code>) within the types/schema section of the WSDL. Then, uncomment the two NotificationProducer 
-					operations (<code>Subscribe</code> and <code>GetCurrentMessage</code>) within both the portType and binding sections.</li>
+					operations (<code>Subscribe</code> and <code>GetCurrentMessage</code>) within both the portType and binding sections. See <a href="site:producer">Notification 
+					Producer</a>.</li>
 					<li>NotificationConsumer - This portType allows a resource to receive notification messages from a notification producer. To implement this portType, uncomment the 
-					<code>Notify</code> operation.</li>
+					<code>Notify</code> operation. See <a href="site:consumer">Notification Consumer</a>.</li>
 					<li>SubscriptionManager - This portType defines message exchanges to manipulate (pause and resume) Subscription resources. An implementation of this portType is 
 					included in Pubscribe as a separate service and therefore does not have to be included in the WSRF/WSN WSDL for a resource. For more information on the Subscription 
 					Manager service, see <a href="site:subscript">Using the Subscription Manager</a>.</li>