From muserhartman@example.com Fri Jun 02 15:27:06 2006 Return-Path: <muserhartman@example.com> Delivered-To: rhartman@example.com Received: (qmail 77503 invoked from network); 2 Jun 2006 15:27:05 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 2 Jun 2006 15:27:05 -0000 Received: (qmail 89920 invoked by uid 500); 2 Jun 2006 15:26:48 -0000 Delivered-To: rhartman@example.com Received: (qmail 89860 invoked by uid 500); 2 Jun 2006 15:26:47 -0000 Mailing-List: contact rhartman@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:rhartman@example.com> List-Unsubscribe: <mailto:rhartman@example.com> List-Post: <mailto:rhartman@example.com> List-Id: <muse-commits.ws.apache.org> Reply-To: rhartman@example.com Delivered-To: mailing list rhartman@example.com Received: (qmail 89800 invoked by uid 500); 2 Jun 2006 15:26:47 -0000 Delivered-To: rhartman@example.com Received: (qmail 89775 invoked by uid 99); 2 Jun 2006 15:26:47 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 02 Jun 2006 08:26:47 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 02 Jun 2006 08:26:45 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 4797E1A983A; Fri, 2 Jun 2006 08:26:25 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r411189 - /webservices/muse/trunk/RELEASE_STEPS.txt Date: Fri, 02 Jun 2006 15:26:24 -0000 To: rhartman@example.com From: rhartman@example.com X-Mailer: svnmailer-1.0.8 Message-Id: <rhartman@example.com> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: scamp Date: Fri Jun 2 08:26:23 2006 New Revision: 411189 URL: http://svn.apache.org/viewvc?rev=411189&view=rev Log: (empty) Added: webservices/muse/trunk/RELEASE_STEPS.txt Added: webservices/muse/trunk/RELEASE_STEPS.txt URL: http://svn.apache.org/viewvc/webservices/muse/trunk/RELEASE_STEPS.txt?rev=411189&view=auto ============================================================================== --- webservices/muse/trunk/RELEASE_STEPS.txt (added) +++ webservices/muse/trunk/RELEASE_STEPS.txt Fri Jun 2 08:26:23 2006 @@ -0,0 +1,43 @@ +The following steps should be taken when cutting a release: + +PRE-STEPS +--------- +- SVN-update trunk/. +- Make sure any junk under trunk/ is cleaned out (e.g. quick-test files, example/interop builds etc.). +- Jalopy all code (make sure imports are optimized). +- In log4j.properties file under src/webapp/WEB-INF/classes, change log level for project package (e.g. org.apache.ws) to INFO. +- Update project version in project.xml, at top and in deps (e.g. update wsrf dep in pubscribe). +- SVN-commit trunk/. + +BUILD +----- +- Run "maven dist" from trunk/ (dist will automatically run "clean" first). +- Verify dist structure is "clean" and run through the quick start guide as a sanity check. +- WinSCP the project jar (under trunk/target/) to minotaur:/www/www.apache.org/dist/java-repository/<project> +- PGP-sign the dist zipfiles (bin and src)...the script sign-release.bat can be used for this, but you will need to update it with your name. +- Using WinSCP, copy dist zipfiles and asc, md5, and KEYS files to your public_html dir in your home directory on Apache. +- Send out release proposal VOTE email to dev list. + +POST-VOTE +--------- +- Using WinSCP, copy dist zipfiles and asc, md5, and KEYS files to minotaur:/www/www.apache.org/dist/ws/<project>. +- To create a branch for the release, SVN-copy contents of trunk/ to branches/X.Y/, e.g.: + svn copy https://svn.apache.org/repos/asf/webservices/wsrf/trunk https://svn.apache.org/repos/asf/webservices/wsrf/branches/1.0 + +WEBSITE +------- +- Add download links for the distributions to downloads page. +- Add announcement in News section of project home page. +- SVN-update site/. +- SVN-delete contents of site/ (optional). +- Copy contents of trunk/target/website/ to site/. +- SVN-commit site/. +- SSH to minotaur and cd into the /www/ws.apache.org/<project> dir and issue the command "svn up"; + NOTE: It will take up to four hours for website updates to be propagated to the actual web server. + +POST-STEPS +---------- +- In log4j.properties file under src/webapp/WEB-INF/classes, change log level for project package (e.g. org.apache.ws) to DEBUG. +- Update project version to X.Z-SNAPSHOT in project.xml, at top and in deps (e.g. update wsrf dep in pubscribe). +- Build a project jar with the new SNAPSHOT version number. +- WinSCP the project jar (under trunk/target/) to minotaur:/www/cvs.apache.org/repository/<project>. --------------------------------------------------------------------- To unsubscribe, e-mail: rhartman@example.com For additional commands, e-mail: rhartman@example.com From muserhartman@example.com Fri Jun 02 17:31:15 2006 Return-Path: <muserhartman@example.com> Delivered-To: rhartman@example.com Received: (qmail 25696 invoked from network); 2 Jun 2006 17:31:15 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (83.161.120.155) by minotaur.apache.org with SMTP; 2 Jun 2006 17:31:15 -0000 Received: (qmail 60185 invoked by uid 500); 2 Jun 2006 17:31:15 -0000 Delivered-To: rhartman@example.com Received: (qmail 60118 invoked by uid 500); 2 Jun 2006 17:31:14 -0000 Mailing-List: contact rhartman@example.com; run by ezmlm Precedence: bulk List-Help: <mailto:rhartman@example.com> List-Unsubscribe: <mailto:rhartman@example.com> List-Post: <mailto:rhartman@example.com> List-Id: <muse-commits.ws.apache.org> Reply-To: rhartman@example.com Delivered-To: mailing list rhartman@example.com Received: (qmail 60098 invoked by uid 500); 2 Jun 2006 17:31:14 -0000 Delivered-To: rhartman@example.com Received: (qmail 60094 invoked by uid 99); 2 Jun 2006 17:31:14 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 02 Jun 2006 10:31:14 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [83.161.120.155] (HELO eris.apache.org) (83.161.120.155) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 02 Jun 2006 10:31:08 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 226811A9846; Fri, 2 Jun 2006 10:30:48 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r411217 [3/5] - in /webservices/muse/branches/1.0/src/site/content/xdocs: ./ muse/ muse/dev_guide/ muse/tutorial/ muse/tutorial/images/ pubscribe/ pubscribe/dev_guide/ pubscribe/tutorial/ pubscribe/tutorial/images/ wsrf/ wsrf/dev_guide/ wsr... Date: Fri, 02 Jun 2006 17:30:35 -0000 To: rhartman@example.com From: rhartman@example.com X-Mailer: svnmailer-1.0.8 Message-Id: <rhartman@example.com> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Added: webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/home.xml URL: http://svn.apache.org/viewvc/webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/home.xml?rev=411217&view=auto ============================================================================== --- webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/home.xml (added) +++ webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/home.xml Fri Jun 2 10:30:32 2006 @@ -0,0 +1,55 @@ +<?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> + <note>If your service is a singleton and only requires a single resource instance, see the <a href="site:w_single">Creating a Singleton Service</a> in the Apache WSRF + documentation.</note> + <p>If you use the Wsdl2Java tool, the home 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. 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.</p> + </section> + <section id="class-declaration"> + <title>Class Declaration</title> + <p>The generated home class extends <code>AbstractResourceHome</code>. Extending <code>AbstractResourceHome</code> + provides services for caching instances and looking them up. It also ensures + 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> + <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> + <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 void init()</source> + <p>The <code>init()</code> operation can be used to initialize any rhartman@example.com. In the FileSystem example, the <code>init()</code> method is used:</p> + <source>public void init() throws Exception + { + super.init(); + add( createInstance( LVOL1_ID ) ); + add( createInstance( LVOL2_ID ) ); + }</source> + <p>The <code>createInstance()</code> method:</p> + <ul> + <li>Creates an instance of the resource.</li> + <li>Sets an endpoint reference on the resource.</li> + <li>Calls <code>init()</code> on the resource.</li> + </ul> + <note>If you choose to not use the <code>createInstance()</code> method (e.g. if you have a non-empty constructor), then you must manually set the EPR then call + the <code>init()</code> method on the resource. The generated home class contains a utility method from the <code>AbstractResourceHome</code> that can be used + to build an EPR.</note> + </section> + </body> +</document> Added: webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/index.xml URL: http://svn.apache.org/viewvc/webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/index.xml?rev=411217&view=auto ============================================================================== --- webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/index.xml (added) +++ webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/index.xml Fri Jun 2 10:30:32 2006 @@ -0,0 +1,89 @@ +<?xml version="1.0"?> +<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" "http://forrest.apache.org/dtd/document-v20.dtd"> +<document> + <header> + <title>Pubscribe Developer Guide</title> + </header> + <body> + <section> + <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/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/producer.xml URL: http://svn.apache.org/viewvc/webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/producer.xml?rev=411217&view=auto ============================================================================== --- webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/producer.xml (added) +++ webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/producer.xml Fri Jun 2 10:30:32 2006 @@ -0,0 +1,72 @@ +<?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> + <note>The notification producer portType resource properties (Topic, FixedTopicSet, TopicExpressionDialects) are initialized by default and do not have to be initalized here.</note> + <p>This section discusses how to add topics to a resource class for each resource property. Topics emit notifications if any resource property changes in any way. 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="site:p_compose">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> + </body> +</document> Added: webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/subscription.xml URL: http://svn.apache.org/viewvc/webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/subscription.xml?rev=411217&view=auto ============================================================================== --- webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/subscription.xml (added) +++ webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/subscription.xml Fri Jun 2 10:30:32 2006 @@ -0,0 +1,131 @@ +<?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 the Subscription Manager</title> + </header> + <body> + <section> + <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 ResourceIdentifier obtained from the EPR of the subscription this value + is 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> + <title>Getting the Subscription Manager's WSDL</title> + <p>The subscription manager publishes its WSDL as metadata using Pubscribe's implementation of the WS-Metadata Exchange specification. The following examples + demonstrate SOAP requests that can be used to retrieve the WSDL. For instructions on providing metadata about your service, see the + <a href="site:w_metadata">Adding Service Metadata</a> section of the Apache + WSRF documentation. </p> + <source><![CDATA[ +<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/" + xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" + 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/foobar</wsa:To> + <wsa:Action mustUnderstand="1">http://schemas.xmlsoap.org/ws/2004/09/mex/GetMetadata/Request</wsa:Action> + <sub:ResourceIdentifier mustUnderstand="1">52082a10-ff9f-11d9-b386-b35a385b29cd</sub:ResourceIdentifier> + </Header> + + <Body> + <wsx:GetMetadata /> + </Body> + +</Envelope>]]></source> + <source><![CDATA[ +<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/" + xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" + 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/foobar</wsa:To> + <wsa:Action mustUnderstand="1">http://schemas.xmlsoap.org/ws/2004/09/mex/Get/Request</wsa:Action> + <sub:ResourceIdentifier mustUnderstand="1">52082a10-ff9f-11d9-b386-b35a385b29cd</sub:ResourceIdentifier> + </Header> + + <Body> + <!-- no body needed. Action defines request for wsx --> + </Body> + +</Envelope>]]></source> + </section> + </section> + </body> +</document> Added: webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/wsdl.xml URL: http://svn.apache.org/viewvc/webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/wsdl.xml?rev=411217&view=auto ============================================================================== --- webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/wsdl.xml (added) +++ webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/wsdl.xml Fri Jun 2 10:30:32 2006 @@ -0,0 +1,84 @@ +<?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. 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. 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> + </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> + <title>Metadata Operations</title> + <p>The template contains two operations that are not defined by the WSRF or WSN specification that can be used in your service to retrieve metadata + about your services. The operations and messages are defined in the + <a href="http://msdn.microsoft.com/library/en-us/dnglobspec/html/ws-metadataexchange.pdf">WS-Metadata Exchange</a> specification defined by Microsoft and other industry + contributors. For instructions on providing metadata about your service, see the <a href="site:w_metadata">Adding Service Metadata</a> section of the Apache + WSRF documentation.</p> + </section> + </section> + </body> +</document> Added: webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/wsdl_tool.xml URL: http://svn.apache.org/viewvc/webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/wsdl_tool.xml?rev=411217&view=auto ============================================================================== --- webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/wsdl_tool.xml (added) +++ webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/dev_guide/wsdl_tool.xml Fri Jun 2 10:30:32 2006 @@ -0,0 +1,144 @@ +<?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>Using a text editor, open <code>WORK_DIR/build.properties</code>.</li> + <li>Uncomment the <code>pubscribe.webapp.dir</code> property and set it to the location where the Pubscribe Web application is installed. If you are using + Tomcat and have the <code>CATALINA_HOME</code> environment variable set, you do not need to modify this property.</li> + <li>Uncomment and modify the proxy settings if you require a proxy to connect to external Web sites.</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 all the jars in 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> Added: webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/getting_started.xml URL: http://svn.apache.org/viewvc/webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/getting_started.xml?rev=411217&view=auto ============================================================================== --- webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/getting_started.xml (added) +++ webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/getting_started.xml Fri Jun 2 10:30:32 2006 @@ -0,0 +1,122 @@ +<?xml version="1.0"?> +<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" + "http://forrest.apache.org/dtd/document-v20.dtd"> +<document> + <header> + <title>Getting Started with Apache Pubscribe</title> + </header> + <body> + <section> + <title>Introduction</title> + <p>The topics in this section detail how to install Apache Pubscribe and use the quick demonstration to verify the installation as well + as exercise some of the features that are included in the release. It is suggested that you complete these sections before starting any + development work. Once you get a good feel for the example in the demonstration, you can recreate it by completing the + <a href="site:tut">tutorial</a>. + </p> + <p>The tutorial takes a step-by-step approach to learning Apache Pubscribe. It highlights the most common procedures that are used to implement + Web Services Notification (WSN). The tutorial also includes steps for deploying Apache Pubscribe. + </p> + <p>Lastly, refer to the <a href="site:dev">Developer Guide</a> for basic and advanced tasks as well as general information about Apache + Pubscribe. Much of the information that is covered in the demonstration and the tutorial is discussed in more detail in the Developer Guide. </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 documentation. All of the tasks required in Apache WSRF are also applicable + in Pubscribe. + </note> + </section> + <section id="install"> + <title>Installation</title> + <p> Apache Pubscribe is packaged as a Web application. In particular, it is an Apache Axis-based Web application with + additional functionality that is required to implement the WSN family of specifications. Since WSN builds on WSRF, the Web application also includes + Apache WSRF. + </p> + <p>To run and install Apache Pubscribe, you must first:</p> + <ul> + <li>install Apache Tomcat or a similar Web container. The documentation assumes Tomcat and refers to the Tomcat + home directory (e.g., <code>c:\jakarta-tomcat-4.1.30</code>) as <code>TOMCAT_HOME</code>. In addition, it is assumed that Tomcat + is configured to listen at the default HTTP port (8080).</li> + <li>install Apache Ant 1.6.X and include its <code>bin</code> directory in the <code>PATH</code> environment variable. Set an + ANT_HOME environment variable to the Ant installation directory.</li> + </ul> + <p>To install Apache Pubscribe:</p> + <ol> + <li>Download the Apache Pubscribe <a href="site:releases">binary distribution</a>.</li> + <li>Unzip the distribution to a location on your computer. This location is referred to as <code>INSTALL_DIR</code>.</li> + <li>From <code>INSTALL_DIR</code>, copy the <code>webapps/pubscribe</code> directory to <code>TOMCAT_HOME/webapps</code>.</li> + <li>Start Tomcat.</li> + <li>Using a browser, go to <a href="http://localhost:8080/pubscribe">http://localhost:8080/pubscribe</a>. The Apache Pubscribe welcome page + displays.</li> + <li>Click <a href="http://localhost:8080/pubscribe/services">View</a>. The list of + deployed Web services displays. Three services are deployed: <code>SubscriptionManager</code>, + <code>AdminService</code>, and <code>Version</code>. The <code>AdminService</code> and <code>Version</code> services are default + Apache-Axis services. The <code>SubscriptionManager</code> is used to pause, resume, destroy, or update subscriptions.</li> + <li>Click on the respective WSDL links to view and ensure that the WSDL for the services are published.</li> + </ol> + </section> + <section id="qd"> + <title>Quick Demonstration</title> + <p>The Quick Demonstration shows some of the features and implementation details of Apache Pubscribe. The demo uses an example that is + included in the distribution. The example represents a UNIX file system resource whose management capabilities are exposed as a WSRF-compliant Web service + and includes a notification producer used to subscribe to events. + </p> + <note>The <a href="site:tut">tutorial</a> provides a step-by-step approach for implementing notifications for WSRF-based resources. In essence, the + tutorial builds and deploys the example that is used in this demo.</note> + <p>Complete the following steps: + </p> + <ol> + <li>Using a text editor, open <code>INSTALL_DIR/examples/filesystem/build.properties</code>.</li> + <li>Change the <code>pubscribe.webapp.dir</code> property and set it to the location where the Pubscribe Web application is installed. + If you are using Tomcat and have <code>CATALINA_HOME</code> set, you do not need to modify this property.</li> + <li>Uncomment and modify the proxy settings if you require a proxy to connect to external Web sites.</li> + <li>Save and close build.properties.</li> + <li>Open a command prompt and change directories to <code>INSTALL_DIR/examples/filesystem</code>.</li> + <li>Run the following command: + <p> + <code>ant compile deploy</code> + </p> + </li> + <li>Start Tomcat. If Tomcat is already started, you must restart it.</li> + <li>Using a browser, go to <a href="http://localhost:8080/pubscribe/services"> + http://localhost:8080/pubscribe/services</a> and verify that the filesystem service is deployed. + </li> + <li>From a command prompt change directories to <code>INSTALL_DIR/examples/filesystem</code> directory. An ANT-based SOAP client that is included in + the distribution is used to send a SOAP request to the filesystem Web service.</li> + <li> + <strong>Subscribe to a Notification Topic: </strong> + <br/> + <p>In this step, a request is sent to subscribe to the notification topic for the <code>MountPointDirectory</code> resource property of the UNIX file + system resource. </p> + <source><![CDATA[ + ant -f soapclient.xml -Durl=http://localhost:8080/pubscribe/services/filesystem -Dxml=requests/Subscribe_updateMountPointProp.soap]]></source> + <note>To complete step 13 later in this demonstration, you must copy the <code>ResourceIdentifier</code> value that is returned in the SOAP body of + the response for this request. This is the look up key for the subscription. + </note> + <br/> + </li> + <li> + <strong>Cause an Event:</strong> + <br/> + <p>In this step, the <code>MountPointDirectory</code> resource property is changed. This will cause a notification to be published.</p> + <source><![CDATA[ + ant -f soapclient.xml -Durl=http://localhost:8080/pubscribe/services/filesystem -Dxml=requests/SetResourceProperties_updateMountPointProp.soap]]></source> + </li> + <li> + <strong>View Notification: </strong> + <br/> + <p>In this step, we will retrieve the notification that was published when the <code>MountPointDirectory</code> resource property was changed in + the previous step.</p> + <source><![CDATA[ + ant -f soapclient.xml -Durl=http://localhost:8080/pubscribe/services/filesystem -Dxml=requests/GetCurrentMessage.soap]]></source> + </li> + <li> + <strong>Destroy Subscription:</strong> + <br/> + <p>In this step, a request is sent to destroy the notification topic subscription. Before completing this step, open the + <code>requests/Destroy_Subscription.soap</code> file and update the <code>sub:ResourceIdentifier</code> element with the value that was copied + in step 10. Save and close the file.</p> + <source><![CDATA[ + ant -f soapclient.xml -Durl=http://localhost:8080/pubscribe/services/SubscriptionManager -Dxml=requests/Destroy_Subscription.soap]]></source> + </li> + </ol> + </section> + </body> +</document> Added: webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/index.xml URL: http://svn.apache.org/viewvc/webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/index.xml?rev=411217&view=auto ============================================================================== --- webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/index.xml (added) +++ webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/index.xml Fri Jun 2 10:30:32 2006 @@ -0,0 +1,51 @@ +<?xml version="1.0"?> +<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" + "http://forrest.apache.org/dtd/document-v20.dtd"> +<document> + <header> + <title>Apache WebServices - Pubscribe</title> + </header> + <body> + <section> + <title>Overview</title> + <p>Pubscribe is a robust Java implementation of the <a href="wsn.html">Web Services Notification (WSN)</a> family of specifications. + </p> + <p>WSN defines a set of specifications that standardize the way Web services can interact using the Notification pattern, which defines a way for consumers + to subscribe to a producer for notifications whenever a particular event occurs. + </p> + <p>WSN builds upon the WS-ResourceFramework (WSRF) family of specifications. Pubscribe leverages the <a href="ext:wsrf/">WSRF</a> project as its + implementation of the WSRF foundation. + </p> + </section> + <section> + <title>Features</title> + <p>This release provides the following features:</p> + <ul> + <li>An Apache WSRF handler/service framework and WS-RP/WS-RL/WS-MeX portType impls</li> + <li>A WSDL to Java generator that will generate the classes and configuration entries from a WSRF/WSN WSDL that are required to deploy it as a service to + the Apache WSRF framework</li> + <li>Full implementations of all portTypes defined by the WS-BaseNotification specification</li> + <li>Full implementations of all portTypes defined by the WS-Eventing specification</li> + <li>Evaluators for all three topic expression dialects defined by the WS-Topics specification</li> + <li>Generic Publish/Subscribe APIs that hide the details of the underlying notification mechanism (WSN or WSE) being used</li> + <li>And more...</li> + </ul> + <p>Any feedback is welcomed and can be sent to our <a href="site:contact">mailing list</a>. + </p> + </section> + <section> + <title>News</title> + <ul> + <li>(June 3, 2005) Pubscribe has graduated from incubation and is now an official Apache project!</li> + <li>(May 25, 2005) <a href="http://ws.apache.org/pubscribe/release.html">Pubscribe 1.0 Beta</a> is now available!</li> + </ul> + </section> + <section> + <title>History</title> + <p>Much of the code in Pubscribe is based on code from the GTK4 WSRF/WSN implementation that was donated by the Globus Consortium. This code was + refactored to make extensive use of Apache XMLBeans to add improved runtime schema type validation and to enable portability to SOAP engines other than Axis. + The original GTK4 WSRF/WSN code is checked in to SVN <a href="http://svn.apache.org/viewcvs.cgi/incubator/apollo/globus/">here</a>. + </p> + </section> + </body> +</document> Added: webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/site.xml_old URL: http://svn.apache.org/viewvc/webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/site.xml_old?rev=411217&view=auto ============================================================================== --- webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/site.xml_old (added) +++ webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/site.xml_old Fri Jun 2 10:30:32 2006 @@ -0,0 +1,101 @@ +<?xml version="1.0"?> +<!-- +Forrest site.xml + +This file contains an outline of the site's information content. It is used to: +- Generate the website menus (though these can be overridden - see docs) +- Provide semantic, location-independent aliases for internal 'site:' URIs, eg +<link href="site:changes"> links to changes.html (or ../changes.html if in + subdir). +- Provide aliases for external URLs in the external-refs section. Eg, <link + href="ext:cocoon"> links to http://xml.apache.org/cocoon/ + +See http://forrest.apache.org/docs/linking.html for more info. +--> +<site label="Pubscribe" href="" xmlns="http://apache.org/forrest/linkmap/1.0"> + <project label="Project Info" tab="home"> + <overview label="Overview" href="index.html"/> + <vcs label="Version Control" href="version_control.html"/> + <issues label="Issue Tracking" href="issue_tracking.html"/> + <contact label="Contact Info" href="contact_info.html"/> + <relnotes label="Release Notes" href="release_notes.html"/> + <wsn label="WSN Specs" href="wsn.html"/> + </project> + <project label="Downloads" tab="home"> + <releases label="Releases" href="release.html"/> + </project> + <!-- **************** Documentation **************** --> + <install label="Getting Started" tab="doc"> + <overview label="Introduction" href="getting_started.html"/> + <installation href="getting_started.html#install"/> + <get label="Installation" href="getting_started.html#install"/> + <quick label="Quick Demo" href="getting_started.html#qd"/> + </install> + <tutorial label="Tutorial" href="tutorial/" tab="doc"> + <tut label="Overview" href="index.html"/> + <setup label="Create Workspace" href="setup.html"/> + <wsdl label="Create WSDL" href="wsdl.html"/> + <wsdl2java label="Run wsdl2Java Tool" href="wsdl2java.html"/> + <modhome label="Modify Home Class" href="mod_home.html"/> + <modresource label="Modify Resource Class" href="mod_resource.html"/> + <webapp label="Deploy Service" href="webapp.html"/> + <test label="Test" href="test.html"/> + </tutorial> + <developer label="Developer Guide" href="dev_guide/" tab="doc"> + <dev label="Overview" href="index.html"/> + <compose label="WSRF/WSN WSDL" href="wsdl.html"/> + <tool label="Using Wsdl2Java" href="wsdl_tool.html"/> + <home label="Home Class" href="home.html"/> + <producer label="Notification Producer" href="producer.html"/> + <consumer label="Notification Consumer" href="consumer.html"/> + <subscript label="Subscription Manager" href="subscription.html"/> + <deploy label="Deploying" href="deploy.html"/> + <client label="Using the SOAP Client" href="client.html"/> + <log label="Logging" href="debug.html"/> + </developer> + <projects label="Related Projects"> + <axis label="Axis" href="ext:axis"/> + <addressing label="Addressing" href="ext:addressing"/> + <xmlbeans label="XMLBeans" href="ext:xmlbeans.apache.org"/> + <maven label="Maven" href="ext:maven.apache.org"/> + </projects> + <external-refs> + <xml.apache.org href="http://xml.apache.org/"> + <forrest href="forrest/"/> + </xml.apache.org> + <xmlbeans.apache.org href="http://xmlbeans.apache.org/"/> + <maven.apache.org href="http://maven.apache.org/"/> + <ws.apache.org href="http://ws.apache.org/"> + <mirrors href="mirrors.cgi"/> + <axis href="axis/"/> + <wsrf href="wsrf/"/> + <spec href="wsrf/wsrf.html"/> + <wsrfwsdl href="wsrf/dev_guide/wsrf_wsdl.html"/> + <wsrfresource href="wsrf/dev_guide/resource.html"/> + <metadata href="wsrf/dev_guide/metadata.html"/> + <single href="wsrf/dev_guide/singleton.html"/> + <addressing href="addressing/"/> + <wss4j href="wss4j/"/> + <asl href="LICENSE.txt"/> + </ws.apache.org> + <cvs.apache.org href="http://cvs.apache.org/"> + <viewcvs href="viewcvs/"> + <wsfx-cvs href="ws-fx/"> + <wsrf-cvs href="wsrf/"/> + </wsfx-cvs> + </viewcvs> + </cvs.apache.org> + <www.apache.org href="http://www.apache.org/"> + <foundation href="foundation/"/> + </www.apache.org> + <nagoya.apache.org href="http://nagoya.apache.org/"> + <eyebrowse href="eyebrowse/"/> + <bugzilla href="bugzilla/"/> + <apachewiki href="wiki/apachewiki.cgi?HomePage"/> + </nagoya.apache.org> + <archive.apache.org href="http://archive.apache.org/"> + <archive-ws href="dist/ws/"/> + </archive.apache.org> + <apachecon.com href="http://apachecon.com/"/> + </external-refs> +</site> Added: webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tabs.xml_old URL: http://svn.apache.org/viewvc/webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tabs.xml_old?rev=411217&view=auto ============================================================================== --- webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tabs.xml_old (added) +++ webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tabs.xml_old Fri Jun 2 10:30:32 2006 @@ -0,0 +1,13 @@ +<?xml version="1.0"?> +<!DOCTYPE tabs PUBLIC "-//APACHE//DTD Cocoon Documentation Tab V1.1//EN" + "tab-cocoon-v11.dtd"> +<tabs software="Pubscribe" title="Pubscribe" copyright="The Apache Software Foundation" xmlns:xlink="http://www.w3.org/1999/xlink"> + <!-- The rules are: + @dir will always have /index.html added. + @href is not modified unless it is root-relative and obviously specifies a + directory (ends in '/'), in which case /index.html will be added + --> + <tab id="home" label="Project Info" dir=""/> + <tab id="doc" label="Documentation" dir="" indexfile="getting_started.html"/> + <tab label="API Docs" dir="apidocs/"/> +</tabs> Added: webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tutorial/images/back.gif URL: http://svn.apache.org/viewvc/webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tutorial/images/back.gif?rev=411217&view=auto ============================================================================== Binary file - no diff available. Propchange: webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tutorial/images/back.gif ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tutorial/images/next.gif URL: http://svn.apache.org/viewvc/webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tutorial/images/next.gif?rev=411217&view=auto ============================================================================== Binary file - no diff available. Propchange: webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tutorial/images/next.gif ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tutorial/index.xml URL: http://svn.apache.org/viewvc/webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tutorial/index.xml?rev=411217&view=auto ============================================================================== --- webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tutorial/index.xml (added) +++ webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tutorial/index.xml Fri Jun 2 10:30:32 2006 @@ -0,0 +1,46 @@ +<?xml version="1.0"?> +<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" + "http://forrest.apache.org/dtd/document-v20.dtd"> +<document> + <header> + <title>Pubscribe Tutorial</title> + </header> + <body> + <section> + <title>Creating and Deploying a WSRF/WSN Web Service</title> + <p>This tutorial provides a step-by-step approach to using Apache Pubscribe to create and deploy a WSRF-compliant Web service that includes a notification + producer for generating WSN-based notifications. The Web service represents a UNIX file system. If you want to see a completed version of the Web service, see + the <a href="site:quick">Quick Demonstration</a>.</p> + <note>To complete the tutorial, you must first <a href="site:installation">install</a> the distribution. In addition, If you want to create a service that acts as a notifcation + consumer, see the <a href="site:consumer">Notification Consumer</a> documentation in the Developer Guide.</note> + <p>The process consists of the following steps:</p> + <ol> + <li> + <a href="setup.html">Create a Working Directory</a> + </li> + <li> + <a href="wsdl.html">Create a WSRF/WSN WSDL</a> + </li> + <li> + <a href="wsdl2java.html">Run the Wsdl2Java Tool</a> + </li> + <li> + <a href="mod_home.html">Modify the Home Class</a> + </li> + <li> + <a href="mod_resource.html">Modify the Resource Class</a> + </li> + <li> + <a href="webapp.html">Compile and Deploy the Service</a> + </li> + <li> + <a href="test.html">Test the Service</a> + </li> + </ol> + <p> + <img src="images/next.gif" alt="go to the next step"/> + <a href="site:setup">Next</a> + </p> + </section> + </body> +</document> Added: webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tutorial/mod_home.xml URL: http://svn.apache.org/viewvc/webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tutorial/mod_home.xml?rev=411217&view=auto ============================================================================== --- webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tutorial/mod_home.xml (added) +++ webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tutorial/mod_home.xml Fri Jun 2 10:30:32 2006 @@ -0,0 +1,43 @@ +<?xml version="1.0"?> +<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" + "http://forrest.apache.org/dtd/document-v20.dtd"> +<document> + <header> + <title>Modify the Home Class</title> + </header> + <body> + <section> + <title>Introduction</title> + <p>In this step of the tutorial, the generated Home class (<code>FilesystemHome</code>) is modified to include an <code>init</code> method. + The Home is used to lookup a 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> + </section> + <section> + <title>Modify the FilesytemHome Class</title> + <p>Open <code>WORK_DIR/generated/filesystem/src/java/org/apache/ws/resource/example/filesystem/FilesystemHome.java</code> and + replace the <code>public void init()</code> method with the following method. You will also need to copy the instance variables below.</p> + <source><![CDATA[ + private static final String LVOL1_ID = "/dev/vg00/lvol1"; + private static final String LVOL2_ID = "/dev/vg00/lvol2"; + + /** + * Create and add two resource instances. + * + * @throws Exception on error + */ + public void init() throws Exception + { + super.init(); + add( createInstance( LVOL1_ID ) ); + add( createInstance( LVOL2_ID ) ); + }]]></source> + <p> + <img src="images/back.gif" alt="go to the previous step"/> + <a href="site:wsdl2java">Back</a> + <img src="images/next.gif" alt="go to the next step"/> + <a href="site:modresource">Next</a> + </p> + </section> + </body> +</document> Added: webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tutorial/mod_resource.xml URL: http://svn.apache.org/viewvc/webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tutorial/mod_resource.xml?rev=411217&view=auto ============================================================================== --- webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tutorial/mod_resource.xml (added) +++ webservices/muse/branches/1.0/src/site/content/xdocs/pubscribe/tutorial/mod_resource.xml Fri Jun 2 10:30:32 2006 @@ -0,0 +1,170 @@ +<?xml version="1.0"?> +<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" + "http://forrest.apache.org/dtd/document-v20.dtd"> +<document> + <header> + <title>Modify the Resource Class</title> + </header> + <body> + <section> + <title>Introduction</title> + <p>In this step of the tutorial, the generated Resource class (<code>FilesystemResource</code>) is modified to implement the <code>init</code> + method as well as several methods for the filesystem's custom operations. The Resource class is the stateful instance-representation of your Web service. The resource + maintains the resource <code>id</code> and the <code>ResourcePropertySet</code>. The resource <code>id</code> is the unique identifier for an instance of your Web + service. It allows you to have multiple resource instances, each with their own states, fronted by the same Web service. The stateful properties are + represented by the <code>ResourcePropertySet</code>. The <code>ResourcePropertySet</code> is the Java representation of the Resource + Properties document defined in the types section of your WSDL file. + </p> + <p>In addition, this class is used to expose resource properties as notification topics and register the exposed topics. + </p> + </section> + <section> + <title>Modify the Resource Class</title> + <p>Open <code>WORK_DIR/generated/filesystem/src/java/org/apache/ws/resource/example/filesystem/FilesystemResource.java</code> and + replace the <code>public void init()</code> method with the following method. You will also need to copy the variable and custom operation methods below.</p> + <source><![CDATA[ +private example.filesystem.backend.FileSystem m_filesystem; + +public void init() + { + + super.init(); + + /* + * This is where you should associate the backend instance with + * the resource instance for a given id. + */ + m_filesystem = new example.filesystem.backend.UnixFileSystem( m_id ); + + /* + * The resource property set which contains all of resource properties that were defined in the WSDL. + */ + org.apache.ws.resource.properties.ResourcePropertySet resourcePropertySet = getResourcePropertySet(); + org.apache.ws.resource.properties.ResourceProperty resourceProperty = null; + + try + { + /* + * Initialize each of our properties by calling resourceProperty.add(propElem) and/or resourceProperty.setCallback(callback)... + */ + resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.DEVICESPECIALFILE ); + DeviceSpecialFileDocument deviceDocXBean = DeviceSpecialFileDocument.Factory.newInstance(); + deviceDocXBean.setDeviceSpecialFile( m_filesystem.getDeviceSpecialFile() ); + resourceProperty.add( deviceDocXBean ); + + resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.TYPE ); + TypeDocument typeDocXBean = TypeDocument.Factory.newInstance(); + typeDocXBean.setType( m_filesystem.getType() ); + resourceProperty.add( typeDocXBean ); + + BackupFrequencyDocument backupDocXBean = BackupFrequencyDocument.Factory.newInstance(); + backupDocXBean.setBackupFrequency( m_filesystem.getBackupFrequency() ); + resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.BACKUPFREQUENCY ); + resourceProperty.add( backupDocXBean ); + resourceProperty.setCallback( new example.filesystem.callback.BackupFrequencyCallback( m_filesystem ) ); + + CommentDocument commentDocXBean = CommentDocument.Factory.newInstance(); + commentDocXBean.setComment( m_filesystem.getComment() ); + resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.COMMENT ); + resourceProperty.add( commentDocXBean ); + resourceProperty.setCallback( new example.filesystem.callback.CommentCallback( m_filesystem ) ); + + FsckPassNumberDocument fsckDocXBean = FsckPassNumberDocument.Factory.newInstance(); + fsckDocXBean.setFsckPassNumber( m_filesystem.getFsckPassNumber() ); + resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.FSCKPASSNUMBER ); + resourceProperty.add( fsckDocXBean ); + resourceProperty.setCallback( new example.filesystem.callback.FsckPassNumberCallback( m_filesystem ) ); + + MountPointDirectoryDocument mountPointDocXBean = MountPointDirectoryDocument.Factory.newInstance(); + mountPointDocXBean.setMountPointDirectory( m_filesystem.getMountPoint() ); + resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.MOUNTPOINTDIRECTORY ); + resourceProperty.add( mountPointDocXBean ); + resourceProperty.setCallback( new example.filesystem.callback.MountPointCallback( m_filesystem ) ); + + OptionsDocument optionsDocXBean = + OptionsDocument.Factory.newInstance(); + org.apache.ws.resource.example.filesystem.OptionsDocument.Options options = + optionsDocXBean.addNewOptions(); + java.util.List backendOptions = + m_filesystem.getOptions(); + for ( int i = 0; i < backendOptions.size(); i++ ) + { + options.addOption( (String) backendOptions.get( i ) ); + } + + resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.OPTIONS ); + resourceProperty.add( optionsDocXBean ); + resourceProperty.setCallback( new example.filesystem.callback.OptionsCallback( m_filesystem ) ); + } + 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() ); + } + + // Resource Property {http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd}TerminationTime is implemented by the framework. + // Resource Property {http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd}CurrentTime is implemented by the framework. + // Resource Property {http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd}FixedTopicSet is implemented by the framework. + // Resource Property {http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd}Topic is implemented by the framework. + // Resource Property {http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd}TopicExpressionDialects is implemented by the framework. + + /** + * This method enables the ResourceTermination Topic for notifications + * about this resource's termination. If you would not like this + * behaviour either comment or remove the line of code. + */ + try + { + org.apache.ws.notification.topics.util.TopicUtils.addResourceTerminationTopic( getTopicSpaceSet(), this, + SPEC_NAMESPACE_SET ); + } + catch ( Exception e ) + { + throw new javax.xml.rpc.JAXRPCException( + "Unable to init the ResourceTermination topic. Cause: " + e.getLocalizedMessage(), e ); + } + + /** + * This method call will make all resource properties be exposed + * as Topics. If you would like to change that behaviour you can + * call TopicUtils.addResourcePropertyValueChangeTopic for each + * Topic you'd like to expose property change notifications for. + */ + try + { + org.apache.ws.notification.topics.util.TopicUtils.addResourcePropertyValueChangeTopics( + getResourcePropertySet(), getTopicSpaceSet() ); + } + catch ( Exception e ) + { + throw new javax.xml.rpc.JAXRPCException( + "Unable to init the ResourceProperty Changed topics. Cause: " + e.getLocalizedMessage(), e ); + } + + } + + public void mount() throws Exception + { + m_filesystem.mount(); + } + + public void unmount() throws Exception + { + m_filesystem.unmount(); + } + + public boolean isMounted() + { +
{'source': 'Apache Software Foundation Public Mail Archives'}