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/15 01:55:06 UTC

svn commit: r219140 - in /webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide: index.xml producer.xml subscription.xml wsdl.xml wsdl_tool.xml

Author: jruzzi
Date: Thu Jul 14 16:55:05 2005
New Revision: 219140

URL: http://svn.apache.org/viewcvs?rev=219140&view=rev
Log:
new topics for the dev guide

Added:
    webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/producer.xml
    webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/subscription.xml
    webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/wsdl.xml
    webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/wsdl_tool.xml
Modified:
    webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/index.xml

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=219140&r1=219139&r2=219140&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 Thu Jul 14 16:55:05 2005
@@ -6,10 +6,83 @@
 	</header>
 	<body>
 		<section>
-			<title>Overview</title>
-			<p>
-        TODO
-      </p>
+			<title>About this Guide</title>
+			<p>The Developer Guide provides instructions for using many of the features that are included in Pubscribe. If you are new to this project, you should start 
+			with the <a href="site:overview">Getting Started</a> and the <a href="site:tut">Tutorial</a> before reading this guide. They provide a good starting point for 
+			learning how to use Pubscribe.</p>
+			<note>Pubscribe is tightly integrated with <a href="ext:wsrf">Apache WSRF</a> as its WSRF foundation. While it is not required, it is a good idea to start with Apache WSRF. 
+			You should also consult the Apache WSRF documentation while completing the instructions in this document. All of the tasks required in Apache WSRF are also required in 
+			Pubscribe.
+			</note>
+			<p>The Developer guide often refers to different parts of the <a href="site:wsn">Web Services Notifications (WSN) specifications</a> that are defined by 
+			the OASIS standards body. You should become familiar with these specifications and refer to them as needed.
+			</p>
+			<p>The Developer Guide guide often refers to Apache WSRF, Apache Axis, Apache Tomcat, Apache Ant, and Apache XMLBeans. Instructions for these packages are 
+			included as required and are not meant to replace the formal documentation for these projects. Consult them as necessary.
+			</p>
+		</section>
+		<section>
+			<title>WSN Overview</title>
+			<p>Pubscribe is an implementation of the <a href="site:wsn">WSN</a> family of specifications that are defined by the OASIS standards body. The specifications describe 
+			how to expose the publish/subscribe pattern using Web services in a way that is scalable from simple devices to enterprise messaging systems. The specifications 
+			include:</p>
+			<ul>
+				<li>WS-BaseNotification - Defines the participants and messages needed to support basic notifications. A notification consumer can subscribe to one or more 
+				notifications that are supported by a notification producer. When a notification is published to a producer, the producer sends SOAP notification messages to all 
+				consumers who are currently subscribed for that particular notification. There is also optional support for enterprise scale 	messaging.</li>
+				<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>
+		</section>
+		<section>
+			<title>Conceptual Overview</title>
+			<p>Pubscribe builds on top of Apache WSRF and provides three deliverables:</p>
+			<ul>
+				<li>APIs for WSN topic spaces, subscriptions, etc...</li>
+				<li>Implementations of the operations defined by the WS-BaseNotification specification</li>
+				<li>A SubscriptionManager service that exposes WS-Resources that represent subscriptions
+				<note>APIs and operation implementations are not currently provided for the WS-BrokeredNotification specification.</note>
+				</li>
+			</ul>
+			<section>
+				<title>Notification Producer</title>
+				<p>A resource that acts as a notification producer implements the WSN <code>NotificationProducer</code> portType. The resource has a <code>TopicSet</code> 
+				object associated with it. This topic set represents the set of topics to which the resource may publish notifications and to which consumers may subscribe. As the 
+				service developer of the producer resource, you are responsible for adding the topics you wish to support to the topic set using Pubscribe APIs.  
+				</p>
+				<p>When a Subscribe request is received, subscribe creates a new Subscription Resource which is exposed via the built-in <code>SubscriptionManager</code> 
+				service. The Subscription Resource provides operations which allow clients to cancel, pause, or resume the associated subscription. To publish a notification to a topic, 
+				you must call the <code>publish</code> method on the Topic object, passing it a  DOM Node or XMLBeans XmlObject that represents the XML message to be published. 
+				Pubscribe will then take care of wrapping the message in a SOAP envelope and sending it to all consumers who are subscribed to the associated Topic.
+				</p>
+			</section>
+			<section>
+				<title>Notification Consumer</title>
+				<p>A resource that acts as a notification consumer implements the <code>NotificationConsumer</code> portType. This portType 
+				includes only one operation - <code>Notify</code>. Producers invoke the <code>Notify</code> operation when they send notifications to the consumer resource. In 
+				addition to the actual notification message, the <code>Notify</code> operation also includes the topic expression to which the message was published and the EPR of 
+				the producer resource that generated the message. These additional components allow the consumer to correlate the message with a particular subscription.
+				</p>
+				<p>Topic expressions are XPath-like expressions that refer to one or more topics. The <code>Subscribe</code> operation includes a topic expression that specifies 
+				which topic(s) the client would like to subscribe to. The WS-Topics specification defines three topic expression dialects of varying complexity - Simple, Concrete, and 
+				Full. Pubscribe includes full support for all three dialects, which means that any producer Resources you expose via Pubscribe can advertise to clients support 
+				for all three dialects.
+				</p>
+			</section>
+		</section>
+		<section>
+			<title>Design-Time</title>
+			<p>A set of tools and integrations are provided that facilitate developing WSRF/WSN-compliant Web services. They are provided to help developers focus on 
+			defining their WS Resource and Notification Topics without having to deal with low-level implementation details.</p>
+			<note>These tools and integrations are not required to create WSRF/WSN-compliant Web services, but are instead provided to save you time.</note>
+			<p>The tools and integrations include:</p>
+			<ul>
+				<li>A WSRF/WSN WSDL template for writing WSRF/WSN-compliant WSDLs</li>
+				<li>A Wsdl2Java tool for generating Java Classes from a WSDL.</li>
+				<li>An integration with Apache XMLBeans for generating custom types defined in the WSDL</li>
+				<li>an integration with Apache Axis for automatically deploying WS Resources</li>
+			</ul>
 		</section>
 	</body>
 </document>

Added: webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/producer.xml
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/producer.xml?rev=219140&view=auto
==============================================================================
--- webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/producer.xml (added)
+++ webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/producer.xml Thu Jul 14 16:55:05 2005
@@ -0,0 +1,73 @@
+<?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 Producer</title>
+	</header>
+	<body>
+		<section id="intro">
+			<title>Introduction</title>
+			<p>This section provides instructions for adding notification topics for a resource. Each resource that is configured to be a notification producer (implements the WSN 
+			<code>NotificationProducer</code> portType) is associated with a <code>TopicSet</code> object. The resource publishes notifications to a topic in the topic set. 
+			Notification consumers can then subscribe to a topic and receive notifications from the resource. As the service developer of the notification producer resource, you are 
+			responsible for adding the topics you want to support to the topic set. In addition, you must initialize all topics. This is done using Pubscribe APIs.  
+			</p>
+		</section>
+		<section>
+			<title>Adding Topics</title>
+			<p>Notification topics must be added to the <code>init()</code> method of your service's resource class. If you used the Wsdl2Java tool, the resource class 
+			(<em><code>service_name</code></em><code>Resource.java</code>) is automatically generated, but will need to modified. The resource class is the stateful 
+			instance-representation of your Web service. In addition to notification topics, the resource class maintains the resource <code>id</code> and the <code>
+			ResourcePropertySet</code>. The <code>ResourcePropertySet</code> is the Java representation of the Resource Properties document defined in the schema section of 
+			your WSDL file.
+			</p> 
+			<p>This section discuss how to add topics to a resource class. Initially, you should model your resource off of the included FileSystemResource example to ensure 
+			that you write a valid resource class. When adding topics to the resource class, you can select to add topics for all resource properties or you can add topics for 
+			specific resource properties. Each style is discussed below.
+			</p>
+			<note>This section does not include instructions for initializing resource properties and adding them to the <code>ResourcePropertySet</code>. See the 
+			<a href="ext:wsrfresource">Resource Class</a> documentation included with Apache WSRF.</note>
+			<section>
+				<title>Topics for All Resource Properties</title>
+				<p>The easiest way to add notification topics is to add topics for all resource properties that a WS resource exposes. In this case, the following method is added to the 
+				resource class:
+				</p><source>
+try
+  {
+  org.apache.ws.notification.topics.util.TopicUtils.addResourcePropertyValueChangeTopics( getResourcePropertySet(), getTopicSpaceSet() );
+  }
+</source>
+  			<p>In the above example, a notification topic is added for all resource properties that have been added to <code>ResourcePropertySet</code>.
+  			</p>
+			</section>
+			<section>
+				<title>Topics for Specific Resource Properties</title>
+				<p>Notification topics can be added for specific resource properties. This allows you to control which topics will be available to a notification consumer. In this case, 
+				the following method can be used for each resource property for which you want to add a topic:
+				</p><source>
+try
+   {
+   org.apache.ws.notification.topics.util.TopicUtils.addResourcePropertyValueChangeTopic( getResourcePropertySet().get( FilesystemPropertyQNames.FSCKPASSNUMBER ), getTopicSpaceSet() );
+   }</source>
+			<p>In the above example a topic is created specifically for the <code>FSCKPASSNUMBER</code> resource property.
+			</p>
+			</section> 
+			<section>
+				<title>Resource Termination Topic</title>
+				<p>The resource termination topic is used for notifications when a resource is terminated. The use of this topic is optional. To add this topic to the resource class, use 
+				the following method:
+				</p><source>
+org.apache.ws.notification.topics.util.TopicUtils.addResourceTerminationTopic( getTopicSpaceSet(), this, SPEC_NAMESPACE_SET );</source>
+			</section>
+		</section>
+		<section>
+			<title>Initializing NotificationProducer Resource Properties</title>
+			<p>The notification producer portType contains several default resource properties (Topic, FixedTopicSet, TopicExpressionDialects). when these properties are initialized, 
+			All topics will be registered. To initialize these properties, the following method is used:
+			</p><source>
+org.apache.ws.notification.topics.util.TopicUtils.initNotificationProducerProperties(getTopicSpaceSet() , getResourcePropertySet());</source>
+			<note>This method MUST be called last in the <code>init()</code> method to ensure all topics get registered.</note>
+		</section>
+	</body>
+</document>

Added: 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=219140&view=auto
==============================================================================
--- webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/subscription.xml (added)
+++ webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/subscription.xml Thu Jul 14 16:55:05 2005
@@ -0,0 +1,15 @@
+<?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 WSRF WSDL</title>
+	</header>
+	<body>
+		<section>
+			<title>Using the WSRF WSDL Template</title>
+			<p>TODO. 
+             		</p>
+		</section>
+	</body>
+</document>

Added: 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=219140&view=auto
==============================================================================
--- webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/wsdl.xml (added)
+++ webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/wsdl.xml Thu Jul 14 16:55:05 2005
@@ -0,0 +1,75 @@
+<?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 WSRF/WSN WSDL</title>
+	</header>
+	<body>
+		<section>
+			<title>Using the WSRF/WSN WSDL Template</title>
+			<p>Resources and notifications are exposed as WS-Resources using the Web Services Description Language (WSDL). The WSDL must
+			conform to the conventions as described in the <a href="ext:spec">WSRF</a> and <a href="site:wsn">WSN</a> Specifications. To make it 
+			easier to write a WSRF/WSN WSDL, Pubscribe 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 WSRF/WSN-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 WSRF/WSN PortType</title>
+			<p>A WSRF/WSN WSDL should contain only one portType. The portType aggregates operations from WSRF and WSN specification-defined portTypes 
+			and custom resource-specific operations. If you copied the WSDL template file as described above, your WSDL file
+         		already contains a WSRF/WSN-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 - 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.</note>
+			<section>
+				<title>WS-BaseNotification PortTypes</title>
+				<p>The WS-BaseNotification specification defines three portTypes:</p>
+				<ul>
+					<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>
+					<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>
+					<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>
+				</ul>
+				<note>Typically, a resource will be either be a Consumer or a Producer. However, you can implement both in a single resource.</note>
+				<table>
+					<tr>
+						<th>PortType</th>
+						<th>Operations</th>
+						<th>Properties</th>
+					</tr>
+					<tr>
+						<td>NotificationProducer</td>
+						<td>Subscribe, GetCurrentMessage</td>
+						<td>Topic, FixedTopicSet, TopicExpressionDialects</td>
+					</tr>
+					<tr>
+						<td>NotificationConsumer</td>
+						<td>Notify</td>
+						<td/>
+					</tr>
+				</table>
+				<note>In addition to operations, the <code>NotificationProducer</code> portType also includes three properties. If a 
+				WS-Resource implements this portType, it must also expose these properties.</note>
+				<p>The PortType element must have a 
+				<code>{http://docs.oasis-open.org/wsrf/2004/11/wsrf-WS-ResourceProperties-1.2-draft-05.xsd}ResourceProperties</code> 
+				attribute whose value is the <code>QName</code> of the resource properties document element defined in the types/schema section of the WSDL file.
+				</p>
+			</section>
+		</section>
+	</body>
+</document>

Added: webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/wsdl_tool.xml
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/wsdl_tool.xml?rev=219140&view=auto
==============================================================================
--- webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/wsdl_tool.xml (added)
+++ webservices/pubscribe/trunk/src/site/content/xdocs/dev_guide/wsdl_tool.xml Thu Jul 14 16:55:05 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 WSRF/WSN 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 WSRF/WSN 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.notification.tool.WsnWsdl2JavaTask</code>) which extends the 
+			Apache WSRF Ant task (<code>org.apache.ws.resource.tool.Wsdl2JavaTask</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>pubscribe.webapp.dir</code> property and any proxy settings if applicable.</li>
+				<li>Copy your WSRF/WSN 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="wsdl2Java" 
+ 	 classname="org.apache.ws.notification.tool.WsnWsdl2JavaTask" 
+ 	 classpath="path/to/pubscribe.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>${pubscribe.home}</code> Ant property to <code> 
+			 INSTALL_DIR</code> (e.g. /opt/pubscribe-1.0beta).</p>
+				<source><![CDATA[
+			 
+	<property name="pubscribe.webapp.dir" location="${pubscribe.home}/webapps/pubscribe" />
+	<path id="pubscribe.classpath.id">
+          <pathelement location="${pubscribe.webapp.dir}/WEB-INF/classes" />
+          <fileset dir="${pubscribe.webapp.dir}/WEB-INF/lib" includes="*.jar" />
+        </path>
+
+        <taskdef name="wsdl2Java" classname="org.apache.ws.notification.tool.WsnWsdl2JavaTask" classpath="pubscribe.classpath.id" />
+
+        <wsdl2Java wsdl="path/to/your.wsdl"
+                   outputdir="generated"                   
+                   classpath="pubscribe.classpath.id" />]]></source>
+				<p>If you want to generate the files for multiple WSDLs, you can use:</p>
+				<source><![CDATA[
+
+	<wsdl2Java outputdir="generated" classpath="pubscribe.classpath.id" />
+	   <wsdls dir="path/to/wsdls/">
+             <include name="**/*.wsdl" />	  
+          </wsdls>
+       </wsdl2Java>]]></source>
+			</section>
+		</section>
+	</body>
+</document>