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 sc...@apache.org on 2005/10/24 18:20:10 UTC
svn commit: r328090 [11/11] - in /webservices/pubscribe/site: ./ apidocs/
apidocs/org/apache/ws/eventing/porttype/
apidocs/org/apache/ws/eventing/porttype/class-use/
apidocs/org/apache/ws/notification/base/
apidocs/org/apache/ws/notification/base/class...
Modified: webservices/pubscribe/site/dev_guide/deploy.html
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/site/dev_guide/deploy.html?rev=328090&r1=328089&r2=328090&view=diff
==============================================================================
--- webservices/pubscribe/site/dev_guide/deploy.html (original)
+++ webservices/pubscribe/site/dev_guide/deploy.html Mon Oct 24 09:18:36 2005
@@ -195,7 +195,7 @@
<a name="N1000C"></a><a name="intro"></a>
<h2 class="boxed">Introduction</h2>
<div class="section">
-<p>The quickest way to deploy your WS Resource is to use the generated build scripts. The scripts compile and delploy your WS
+<p>The quickest way to deploy your WSRF service is to use the generated build scripts. The scripts compile and delploy your WS
Resource to the Pubscribe Web application, which is an Apache-Axis Web application. This section describes how to use the
generated build scripts and also how the script works so you can build your own scripts.</p>
</div>
@@ -259,94 +259,56 @@
</li>
+
<li>
-<strong>Update the jndi-config.xml file.</strong>
-
-<p>The jndi-config.xml contains information about your service, resource, home and resource key. This information is necessary for
- Pubscribe to create your home and handle requests for your service. It will setup the in-memory JNDI context for your classes.
- Here is the entry that was used for the FileSystem example:</p>
-
-<pre class="code"> <service name="filesystem">
- <resource name="home" type="example.filesystem.FileSystemHome">
- <resourceParams>
- <parameter>
- <name>baseWebappUrl</name>
- <value>http://$IP_ADDRESS$:8080/pubscribe</value>
- </parameter>
- <parameter>
- <name>serviceClassName</name>
- <value>example.filesystem.FileSystemService</value>
- </parameter>
- <parameter>
- <name>resourceClassName</name>
- <value>example.filesystem.FileSystemResource</value>
- </parameter>
- <parameter>
- <name>wsdlTargetNamespace</name>
- <value>http://ws.apache.org/resource/example/filesystem</value>
- </parameter>
- <parameter>
- <name>resourceIdentifierReferenceParameterName</name>
- <value>{http://ws.apache.org/resource/example/filesystem}ResourceIdentifier</value>
- </parameter>
- </resourceParams>
- </resource>
- </service></pre>
-
-<p>The<span class="codefrag"> name</span> attribute is a unique name in the config file to denote your service in JNDI. The resource "name" attribute is used for locating your home
- instance, and is named <span class="codefrag">home</span>. Notice <span class="codefrag">serviceClassName</span> points to the clasname for the service class. The same is said for the
- <span class="codefrag">resourceClassName</span>. The <span class="codefrag">wsdlTargetNamespace </span> is the target namespace from your WSDL.
- </p>
+<strong>Update the wsrf-config.xml file.</strong>
-<p>The <span class="codefrag">baseWebappUrl</span> parameter is used to define the URL of your Web application. You can include a static host, or as an
- alternative, you can use the following markers which are replaced at runtime:
+<p>The wsrf-config.xml contains configuration information for each deployed WSRF service as well as global configuration for the WSRF runtime. This information is necessary for
+ Apache WSRF to create your home and handle requests for your service. The resource homes for each WSRF service will be bound in JNDI at <span class="codefrag">wsrf/resource/service_name</span>.
+ Here is the configuration entry for the FileSystem example WSRF service:</p>
+
+<pre class="code"> <bean name="resource/filesystem" class="org.apache.ws.resource.example.filesystem.FilesystemHome" init-method="init">
+ <property name="portComponentName"><value>filesystem</value></property>
+ <property name="serviceClass"><value>org.apache.ws.resource.example.filesystem.FilesystemService</value></property>
+ <property name="resourceClass"><value>org.apache.ws.resource.example.filesystem.FilesystemResource</value></property>
+ <property name="resourceIdentifierReferenceParameterName"><value>{http://ws.apache.org/resource/example/filesystem}ResourceIdentifier</value></property>
+ </bean>
+</pre>
+
+<p>The <span class="codefrag">id</span> attribute of the bean element is an identifier that uniquely identifies the bean definition in the config file.
+ It must be a valid XML ID and unique among the other bean defintions in the configuration file, but otherwise, its value is arbitrary. The <span class="codefrag">class</span> attribute specifies the full classname of the resource home class for this WSRF service. The "portComponentName" property indicates the unique deployment name for the WSRF service (i.e. the service name from Axis' server-config.wsdd or the last portion of the service's endpoint URL). The <span class="codefrag">serviceClass</span> property points to the
+ full classname for the service class. The <span class="codefrag">resourceClassName</span> property points to the
+ full classname for the resource class.
</p>
-<ul>
-
-<li>
-
-<span class="codefrag">$IP_ADDRESS$</span> - An attempt is made to determine the IP address at runtime. (Do not use on multi-homed systems).</li>
-
-<li>
-
-<span class="codefrag">$HOST_NAME$</span> - An attempt is made to determine the host name at runtime.</li>
-</ul>
-
-<p>The <span class="codefrag">resourceIdentifierReferenceParameterName</span> parameter represents the name of the WS-Addressing-header that is used to
+<p>The <span class="codefrag">resourceIdentifierReferenceParameterName</span> property represents the name of the WS-Addressing reference parameter SOAP header that is used to
extract a unique resource identifier to lookup a specific WS-Resource instance. This value should be a QName that includes the local
- reference parameter name in the format <em><span class="codefrag">{namespaceURI}localPart</span></em>, where namesapaceURI and localPart are the namespace and URI and local
- part of the qualified name of the reference paramater that should contain the resource identifier. If you omit this entry, it is assumed that the service is a
- <strong><span class="codefrag">SINGLETON</span></strong> service and no resource id is expected in the
- WS-Addressing headers.
+ reference parameter name in the format <em><span class="codefrag">{namespaceURI}localPart</span></em>, where namespaceURI and localPart are the namespace and URI and local
+ part of the qualified name of the reference paramater that should contain the resource identifier. If you omit this entry, it is assumed that the service exposes a
+ <strong><span class="codefrag">SINGLETON</span></strong> WS-Resource and hence no resource id WS-Addressing reference parameter is expected in the SOAP header.
</p>
</li>
+
<li>
<strong>Update the server-config.wsdd file</strong>
<p>The <span class="codefrag">server-config.wsdd</span> file is the configuration file for the Axis SOAP engine,
- which is bundled with Pubscribe. This file is located in the <span class="codefrag">pubscribe/WEB-INF/</span> directory.
+ which is bundled with Pubscribe. This file is located in the <span class="codefrag">pubscribe/WEB-INF</span> directory.
See the <a href="http://ws.apache.org/axis/">Axis</a> documentation for complete instructions about <span class="codefrag">server-config.wsdd</span>
</p>
-<p>The file contains a deployment entry for each Web service. For example, the FileSystem service example is:
+<p>The file contains a deployment entry for each Web service. For example, the entry for the FileSystem example service is:
</p>
-<pre class="code"> <service name="filesystem" provider="java:WSRF" style="document" use="literal">
- <wsdlFile>/wsdl/FileSystem.wsdl</wsdlFile>
- <requestFlow>
- <handler type="java:org.apache.axis.handlers.JAXRPCHandler">
- <parameter name="className" value="org.apache.axis.message.addressing.handler.AxisServerSideAddressingHandler"/>
- <parameter name="referencePropertyNames" value="*"/>
- </handler>
- </requestFlow>
- </service></pre>
+<pre class="code"> <service name="filesystem" provider="java:WSRF" style="document" use="literal">
+ <wsdlFile>/wsdl/FileSystem.wsdl</wsdlFile>
+ </service></pre>
<p>The service <span class="codefrag">name</span> attribute is the endpoint name and should be the same as the port's <span class="codefrag">name</span> attribute
from your WSDL file. This will ensure people consuming your WSDL will be able to invoke your service.
@@ -354,13 +316,7 @@
<p>Notice the entry for <span class="codefrag">wsdlFile</span> which points to the <span class="codefrag">/wsdl/FileSystem.wsdl</span>.
This translates to the wsdl directory under the <span class="codefrag">WEB-INF/classes</span> directory.
- </p>
-
-<p>The last part is the <span class="codefrag">requestFlow</span>. This xml fragment is necessary to ensure the
- requests are routed through the WS-Addressing handler. This is static and should
- always be present. We did not define it globally in case there were other services
- defined which will not use WS-Addressing.
- </p>
+ </p>
</li>
Modified: webservices/pubscribe/site/dev_guide/producer.html
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/site/dev_guide/producer.html?rev=328090&r1=328089&r2=328090&view=diff
==============================================================================
--- webservices/pubscribe/site/dev_guide/producer.html (original)
+++ webservices/pubscribe/site/dev_guide/producer.html Mon Oct 24 09:18:36 2005
@@ -184,90 +184,130 @@
<a href="#intro">Introduction</a>
</li>
<li>
-<a href="#Adding+Topics">Adding Topics</a>
-<ul class="minitoc">
+<a href="#Adding+Topic+Namespaces+to+the+Global+Registry">Adding Topic Namespaces to the Global Registry</a>
+</li>
<li>
-<a href="#Topics+for+All+Resource+Properties">Topics for All Resource Properties</a>
+<a href="#Adding+Topics+to+your+Producer%27s+Topic+Set">Adding Topics to your Producer's Topic Set</a>
</li>
<li>
-<a href="#Topics+for+Specific+Resource+Properties">Topics for Specific Resource Properties</a>
+<a href="#Resource+Property+Value+Change+Topics">Resource Property Value Change Topics</a>
</li>
<li>
<a href="#Resource+Termination+Topic">Resource Termination Topic</a>
</li>
</ul>
-</li>
-</ul>
</div>
+
<a name="N1000C"></a><a name="intro"></a>
<h2 class="boxed">Introduction</h2>
<div class="section">
-<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
- <span class="codefrag">NotificationProducer</span> portType) is associated with a <span class="codefrag">TopicSet</span> 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>This section provides instructions for configuring notification topics for a notification producer resource. Each resource that is configured to be a notification producer (implements the WSN
+ <span class="codefrag">NotificationProducer</span> portType) has an associated <span class="codefrag">TopicSet</span> object. The TopicSet respresents the set of topics to which the producer may send notifications.
+ Notification consumers can subscribe to any of these topics to receive notifications from the producer whenever notifications are published to those topics. As the service developer of the notification producer resource, you are
+ responsible for adding the topics you want to support to your topic set. Additionally, you must ensure all topics you add to your topic set are defined in a topic namespace in the topic namespace registry. A topic namespace defines a hierarchy of topics within a certain namespace.
</p>
</div>
+
-<a name="N1001C"></a><a name="Adding+Topics"></a>
-<h2 class="boxed">Adding Topics</h2>
+<a name="N1001C"></a><a name="Adding+Topic+Namespaces+to+the+Global+Registry"></a>
+<h2 class="boxed">Adding Topic Namespaces to the Global Registry</h2>
<div class="section">
-<p>Notification topics must be added to the <span class="codefrag">init()</span> method of your service's resource class. If you used the Wsdl2Java tool, the resource class
- (<em>
- <span class="codefrag">service_name</span>
- </em>
- <span class="codefrag">Resource.java</span>) 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 <span class="codefrag">id</span> and the <span class="codefrag">
- ResourcePropertySet</span>. The <span class="codefrag">ResourcePropertySet</span> is the Java representation of the Resource Properties document defined in the schema section of
- your WSDL file.
- </p>
+<p>The topic namespace registry is Pubscribe's global registry of of topic namespaces (aka topic spaces). A topic namespace defines a hierarchy of topics within a certain namespace. The WS-Topics specification defines an XML schema for a topic namespace. Here is an example of a TopicSpace document:</p>
+<pre class="code">
+<TopicSpace name="TopicSpaceExample1"
+ targetNamespace="http://example.org/topicSpace/example1"
+ xmlns:tns="http://example.org/topicSpace/example1"
+ xmlns:xyz="http://example.org/anotherNamespace"
+ xmlns="http://docs.oasis-open.org/wsn/2004/06/wsn-WS-Topics-1.2-draft-01.xsd">
+ <Topic name="t1">
+ <Topic name="t2" messageTypes="xyz:m1 tns:m2"/>
+ <Topic name="t3" messageTypes="xyz:m3"/>
+ </Topic>
+ <Topic name="t4">
+ <Topic name="t5" messageTypes="tns:m3"/>
+ <Topic name="t6">
+ <AliasRef dialect="http://docs.oasis-open.org/wsn/2004/06/TopicExpression/Concrete">tns:t1/t3</AliasRef>
+ </Topic>
+ </Topic>
+</TopicSpace>
+</pre>
+<p>
+Specifications that define topics will usually define the associated TopicSpace XML document(s). For example the WSDM MUWS and MOWS specs both define a TopicSpace document that defines all of the topics they support. In the case of custom topics (i.e. topics that you define youself), you'll need to write your own TopicSpace document(s). The <span class="codefrag">TopicNamespaceRegistry</span> bean defintion in your wsrf-config.xml is where you should add entries for all specification-defined and custom topic namespaces. This bean definition looks as follows:
+</p>
+<pre class="code">
+ <bean id="TopicNamespaceRegistry" class="org.apache.ws.notification.topics.TopicNamespaceRegistry">
+ <constructor-arg>
+ <set>
+ <value>classpath:org/apache/ws/notification/topics/v2004_06/ResourceLifetime-TopicSpace.xml</value>
+ <!-- value>classpath:your-custom-topicSpace.xml</value -->
+ </set>
+ </constructor-arg>
+ </bean>
+</pre>
+<p>
+Notice the set of values that is passed to the constructor of the TopicNamespaceRegistry bean. Each of these values is the URL of a TopicSpace XML document. The URL may be either a file, http, or classpath URL. Classpath URLs are handy because they allow you to deploy your TopicSpace documents in the <span class="codefrag">WEB-INF/lib</span> or <span class="codefrag">WEB-INF/classes</span> directories in the Pubscribe webapp. For more information about topic namespaces, please refer to the WS-Topics specification.
+</p>
+</div>
+
+
+<a name="N1003D"></a><a name="Adding+Topics+to+your+Producer%27s+Topic+Set"></a>
+<h2 class="boxed">Adding Topics to your Producer's Topic Set</h2>
+<div class="section">
+<p>Your topic set can either be initialized via the WSRF configuration file or programmatically via APIs. Using the configuration file is the recommended method, because you will be able to modify your topic set without recompiling code. In either case, each topic to be added to the topic set is specified via a topic expression.</p>
+<p>Your wsrf-cofig.xml should contain a bean definition for your producer resource that looks something like the following:</p>
+<pre class="code">
+ <bean id="YourProducerResource" class="org.example.YourProducerResource" singleton="false">
+ <property name="topicSet">
+ <bean class="org.apache.ws.notification.topics.impl.TopicSetImpl">
+ <constructor-arg>
+ <set>
+ <bean class="org.apache.ws.notification.topics.expression.SimpleTopicExpression">
+ <constructor-arg><value>{http://example.org/topics/}RootTopic</value></constructor-arg>
+ </bean>
+ <bean class="org.apache.ws.notification.topics.expression.ConcreteTopicExpression">
+ <constructor-arg><value>{http://example.net/topics/}foo/SubTopic</value></constructor-arg>
+ </bean>
+ </set>
+ </constructor-arg>
+ </bean>
+ </property>
+ </bean>
+</pre>
+<p>The <span class="codefrag">topicSet</span> property is a bean which defines your producer's topic set. This bean's constructor takes a set of <span class="codefrag">TopicExpression</span> beans. You should add one <span class="codefrag">TopicExpression</span> bean to this set for each topic you want to add to your topic set. To specify a root topic, use the <span class="codefrag">org.apache.ws.notification.topics.expression.SimpleTopicExpression</span> class as shown above. To specify a subtopic, use the <span class="codefrag">org.apache.ws.notification.topics.expression.ConcreteTopicExpression</span> class as shown above. Both the SimpleTopicExpression and ConcreteTopicExpression classes have a constructor which
+takes a QName that specifies the "topic path". The QName is represented as a string using the syntax "{namespaceURI}localPart".</p>
+<p>To add topic to your topic set programmatically, use the <span class="codefrag">addTopicExpression</span> method on your producer resource's <span class="codefrag">TopicSet</span>. For example:</p>
+<pre class="code">
+ yourResource.getTopicSet().addTopicExpression( new SimpleTopicExpression( new QName( "http://example.org/topics/", "RootTopic" ) ) );
+</pre>
+<p>For a topic set that is defined as fixed, all topics should be added to the topic set either via the WSRF configuration file or in the resource's <span class="codefrag">init</span> method. However, for topic sets that are not fixed, it is acceptable to add new topics to the set during runtime. For more information about topic sets, please refer to the WS-BaseNotification and WS-Topics specifications.</p>
<div class="frame note">
<div class="label">Note</div>
-<div class="content">The notification producer portType resource properties (Topic, FixedTopicSet, TopicExpressionDialects) are initialized by default and do not have to be initalized here.</div>
+<div class="content">The notification producer portType resource properties (Topic, FixedTopicSet, TopicExpressionDialects) are initialized in the generated abstract resource class, so you do not need to initialize them in your producer resource's <span class="codefrag">init</span> method.</div>
</div>
-<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>
<div class="frame note">
<div class="label">Note</div>
<div class="content">This section does not include instructions for initializing resource properties and adding them to the <span class="codefrag">ResourcePropertySet</span>. See the
<a href="http://ws.apache.org/wsrf/dev_guide/resource.html">Resource Class</a> documentation included with Apache WSRF.</div>
</div>
-<a name="N1004A"></a><a name="Topics+for+All+Resource+Properties"></a>
-<h3 class="boxed">Topics for All Resource Properties</h3>
-<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>
-<pre class="code">
-try
- {
- org.apache.ws.notification.topics.util.TopicUtils.addResourcePropertyValueChangeTopics( getResourcePropertySet(), getTopicSpaceSet() );
- }
-</pre>
-<p>In the above example, a notification topic is added for all resource properties that have been added to <span class="codefrag">ResourcePropertySet</span>.
- </p>
-<a name="N1005E"></a><a name="Topics+for+Specific+Resource+Properties"></a>
-<h3 class="boxed">Topics for Specific Resource Properties</h3>
-<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:
+</div>
+
+
+<a name="N10083"></a><a name="Resource+Property+Value+Change+Topics"></a>
+<h2 class="boxed">Resource Property Value Change Topics</h2>
+<div class="section">
+<p>As per the WS-ResourceProperties specification, resource property value change topics can be defined that correspond to specific mutable resource properties. Consumers can subscribe to these topics to be notified whenever the values of the associated properties change. The notification that is sent to consumers contains the new value of the property, and, optionally, its old value. The WSRP specification says that the topic path of property change topics must be identical to the QName of resource property with which it is associated. Apache WSRF will automatically recognize any property change topics in your topic set and register listeners on the corresponding properties to ensure notifications are published whenever the properties are externally changed (i.e. via a SetResourceProperties request). If you wish to publish property changed notifications when a property is internally changed, you will need to publish the notification yourself by invoking the <span class="codefrag">publish</span> method on your producer resource.
</p>
-<pre class="code">
-try
- {
- org.apache.ws.notification.topics.util.TopicUtils.addResourcePropertyValueChangeTopic( getResourcePropertySet().get( FilesystemPropertyQNames.FSCKPASSNUMBER ), getTopicSpaceSet() );
- }</pre>
-<p>In the above example a topic is created specifically for the <span class="codefrag">FSCKPASSNUMBER</span> resource property.
- </p>
-<a name="N10072"></a><a name="Resource+Termination+Topic"></a>
-<h3 class="boxed">Resource Termination Topic</h3>
-<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:
+</div>
+
+
+<a name="N10090"></a><a name="Resource+Termination+Topic"></a>
+<h2 class="boxed">Resource Termination Topic</h2>
+<div class="section">
+<p>As per the WS-ResourceProperties specification, a resource termination topic can be defined for a resource. Consumers can subscribe to this topic to be notified when the resource instance is destroyed. The notification that is sent to consumers contains the time that the resource was destroyed and, optionally, the reason it was destroyed. The WSRP specification says that the topic path of the resource termination topic must be "{http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd}ResourceTermination". If you add the resource termination topic to your topic set, Apache WSRF will automatically register a listener on your resource to ensure a notification is published when the resource is destroyed. If you wish to support the resource termination topic for one or more of your services, you must make sure the topic namespace that defines the topic (i.e. the WS-ResourceLifetime topic namespace) has been added to the topic namespace registry. To do so, make sure the location "classpath:org/apache/ws/notification/topics/v2004_06/ResourceLifetime-TopicSpace.xml" is included in the TopicNamespaceRegistry bean definition in your wsrf-config.xml.
</p>
-<pre class="code">
-org.apache.ws.notification.topics.util.TopicUtils.addResourceTerminationTopic( getTopicSpaceSet(), this, SPEC_NAMESPACE_SET );</pre>
</div>
+
</div>
<!--+
Modified: webservices/pubscribe/site/dev_guide/subscription.html
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/site/dev_guide/subscription.html?rev=328090&r1=328089&r2=328090&view=diff
==============================================================================
--- webservices/pubscribe/site/dev_guide/subscription.html (original)
+++ webservices/pubscribe/site/dev_guide/subscription.html Mon Oct 24 09:18:36 2005
@@ -209,8 +209,7 @@
<p>The WS-BaseNotification specification includes a portType called <span class="codefrag">SubscriptionManager</span>. The portType includes two operations
(<span class="codefrag">PauseSubscription</span> and <span class="codefrag"> ResumeSubscription</span>) and a set of resource properties: <span class="codefrag">ConsumerReference</span>,
<span class="codefrag">TopicExpression</span>, <span class="codefrag">UseNotify</span>, <span class="codefrag">Precondition</span>, <span class="codefrag">Selector</span>, <span class="codefrag">SubscriptionPolicy</span>, and
- <span class="codefrag">CreationTime</span>. 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.
+ <span class="codefrag">CreationTime</span>. Pubscribe implements this portType and its required resource properties by default. Therefore, it is not necessary for you to ever define define or implement this portType.
</p>
<div class="frame note">
<div class="label">Note</div>
@@ -269,7 +268,7 @@
<a name="N10071"></a><a name="Destroy"></a>
<h3 class="boxed">Destroy</h3>
<p>The <span class="codefrag">SubscriptionManager</span> 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 <span class="codefrag">ResourceIdentifier</span>.</p>
+ used to destroy a subscription (i.e. unsubscribe). Like pause and resume, you must provide the EPR and the subscription's <span class="codefrag">ResourceIdentifier</span>.</p>
<pre class="code">
<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"
@@ -289,10 +288,14 @@
</Envelope></pre>
<a name="N10085"></a><a name="Getting+the+Subscription+Manager%27s+WSDL"></a>
<h3 class="boxed">Getting the Subscription Manager's WSDL</h3>
-<p>The subscription manager publishes its WSDL as metadata using Pubscribe's implementation of the WS-Metadata Exchange specification. The following examples
+<p>The subscription manager publishes its WSDL as metadata using Pubscribe's builtin support for the WS-MetadataExchange 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="http://ws.apache.org/wsrf/dev_guide/metadata.html">Adding Service Metadata</a> section of the Apache
WSRF documentation. </p>
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">The following request contains a ResourceIdentifier which must be updated to the identifier of the resource you plan to talk to.</div>
+</div>
<pre class="code">
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex"
@@ -306,22 +309,6 @@
<Body>
<wsx:GetMetadata />
- </Body>
-
-</Envelope></pre>
-<pre class="code">
-<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></pre>
Modified: webservices/pubscribe/site/dev_guide/wsdl.html
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/site/dev_guide/wsdl.html?rev=328090&r1=328089&r2=328090&view=diff
==============================================================================
--- webservices/pubscribe/site/dev_guide/wsdl.html (original)
+++ webservices/pubscribe/site/dev_guide/wsdl.html Mon Oct 24 09:18:36 2005
@@ -201,7 +201,7 @@
<h2 class="boxed">Using the WSRF/WSN WSDL Template</h2>
<div class="section">
<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="http://ws.apache.org/wsrf/wsrf.html">WSRF</a> and <a href="../wsn.html">WSN</a> Specifications. To make it
+ conform to the conventions as described in the <a href="http://ws.apache.org/wsrf/wsrf.html">WSRF</a> and <a href="../wsn.html">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>
Modified: webservices/pubscribe/site/dev_guide/wsdl_tool.html
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/site/dev_guide/wsdl_tool.html?rev=328090&r1=328089&r2=328090&view=diff
==============================================================================
--- webservices/pubscribe/site/dev_guide/wsdl_tool.html (original)
+++ webservices/pubscribe/site/dev_guide/wsdl_tool.html Mon Oct 24 09:18:36 2005
@@ -5,7 +5,7 @@
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.6">
<meta name="Forrest-skin-name" content="pelt">
-<title>Using Wsdl2Java</title>
+<title>Using WsnWsdl2Java</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="../skin/screen.css" rel="stylesheet">
<link media="print" type="text/css" href="../skin/print.css" rel="stylesheet">
@@ -177,7 +177,7 @@
+-->
<div id="content">
<div id="skinconf-txtlink"></div>
-<h1>Using Wsdl2Java</h1>
+<h1>Using WsnWsdl2Java</h1>
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -192,7 +192,7 @@
<a name="N1000C"></a><a name="Introduction"></a>
<h2 class="boxed">Introduction</h2>
<div class="section">
-<p>The Wsdl2Java tool is used to generate a set of artificats for a WSRF/WSN WS Resource. The artifiacts include:</p>
+<p>The WsnWsdl2Java tool is used to generate a set of artifacts from a WSRF/WSN WSDL. The artifiacts include:</p>
<ul>
<li>A set of Java classes based on the WSDL definition. This includes a service, resource, and
@@ -206,8 +206,7 @@
<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>
+<li>A WSRF configuration file for the resource home associated with your service (<em>service</em>_wsrf-config.xml). This file defines the information necessary for Apache WSRF to initialize and dispatch requests to your service.</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
@@ -218,8 +217,8 @@
<a name="N10035"></a><a name="Ant+Task"></a>
<h2 class="boxed">Ant Task</h2>
<div class="section">
-<p>The Wsdl2Java tool can be invoked using the <span class="codefrag">wsdl2Java</span> Ant task (<span class="codefrag">org.apache.ws.notification.tool.WsnWsdl2JavaTask</span>) which extends the
- Apache WSRF Ant task (<span class="codefrag">org.apache.ws.resource.tool.Wsdl2JavaTask</span>). The
+<p>The WsnWsdl2Java tool can be invoked using the WsnWsdl2Java Ant task (<span class="codefrag">org.apache.ws.notification.tool.WsnWsdl2JavaTask</span>) which extends the
+ Apache WSRF Wsdl2Java Ant task (<span class="codefrag">org.apache.ws.resource.tool.Wsdl2JavaTask</span>). The
<span class="codefrag">INSTALL_DIR/template/build.xml</span> script contains a target that already implements this task.</p>
<p>To use the target:</p>
<ol>
@@ -247,7 +246,7 @@
</li>
</ol>
-<a name="N10081"></a><a name="Task+Definition"></a>
+<a name="N1007E"></a><a name="Task+Definition"></a>
<h3 class="boxed">Task Definition</h3>
<p>The task is defined as follows :</p>
<pre class="code">
Modified: webservices/pubscribe/site/index.html
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/site/index.html?rev=328090&r1=328089&r2=328090&view=diff
==============================================================================
--- webservices/pubscribe/site/index.html (original)
+++ webservices/pubscribe/site/index.html Mon Oct 24 09:18:36 2005
@@ -196,6 +196,8 @@
<div class="section">
<ul>
+<li>(October 21, 2005) <a href="http://ws.apache.org/pubscribe/release.html">Pubscribe 1.1</a> is now available!</li>
+
<li>(August 5, 2005) <a href="http://ws.apache.org/pubscribe/release.html">Pubscribe 1.0</a> is now available!</li>
<li>(June 3, 2005) Pubscribe has graduated from incubation and is now an official Apache project!</li>
@@ -205,7 +207,7 @@
</ul>
</div>
-<a name="N10068"></a><a name="History"></a>
+<a name="N1006F"></a><a name="History"></a>
<h2 class="boxed">History</h2>
<div class="section">
<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
Modified: webservices/pubscribe/site/release.html
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/site/release.html?rev=328090&r1=328089&r2=328090&view=diff
==============================================================================
--- webservices/pubscribe/site/release.html (original)
+++ webservices/pubscribe/site/release.html Mon Oct 24 09:18:36 2005
@@ -136,6 +136,9 @@
<div id="minitoc-area">
<ul class="minitoc">
<li>
+<a href="#v1.1">v1.1</a>
+</li>
+<li>
<a href="#v1.0">v1.0</a>
</li>
<li>
@@ -143,8 +146,20 @@
</li>
</ul>
</div>
+
+<a name="N1000C"></a><a name="v1.1"></a>
+<h2 class="boxed">v1.1</h2>
+<div class="section">
+<ul>
+
+<li>Download: <a class="external" href="http://www.apache.org/dyn/closer.cgi/ws/pubscribe/1.1/bin/">binary distribution</a>,
+ <a class="external" href="http://www.apache.org/dyn/closer.cgi/ws/pubscribe/1.1/src/">source distribution</a>
+</li>
+
+</ul>
+</div>
-<a name="N1000C"></a><a name="v1.0"></a>
+<a name="N10020"></a><a name="v1.0"></a>
<h2 class="boxed">v1.0</h2>
<div class="section">
<ul>
@@ -156,7 +171,7 @@
</ul>
</div>
-<a name="N10020"></a><a name="v1.0+Beta"></a>
+<a name="N10034"></a><a name="v1.0+Beta"></a>
<h2 class="boxed">v1.0 Beta</h2>
<div class="section">
<ul>
Modified: webservices/pubscribe/site/release_notes.html
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/site/release_notes.html?rev=328090&r1=328089&r2=328090&view=diff
==============================================================================
--- webservices/pubscribe/site/release_notes.html (original)
+++ webservices/pubscribe/site/release_notes.html Mon Oct 24 09:18:36 2005
@@ -146,13 +146,34 @@
<div class="frame note">
<div class="label">Note</div>
-<div class="content">If you have any services created prior to this release, it is strongly suggested that you regenerate the services (including XmlBeans-generated types) to a
+<div class="content">If you have any services created prior to this release, it is strongly suggested that you regenerate the services to a
clean directory and manually port any added code to the newly generated files. This will avoid any problems associated with the changes in this release.</div>
</div>
-<a name="N1000F"></a><a name="Change+History"></a>
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content">Please read the current <a href="http://ws.apache.org/wsrf/release_notes.html">Release Notes</a> from the Apache WSRF project for changes to the "core" of Pubscribe.</div>
+</div>
+
+<a name="N10016"></a><a name="Change+History"></a>
<h2 class="boxed">Change History</h2>
<div class="section">
+<p>Changes since the 1.0 release:</p>
+<ul>
+
+<li>The SubscriptionManager WSDL has changed to include a ResourceProperty for the NotificationProducer's EPR.</li>
+
+<li>Some API changes</li>
+
+<li>Various refactorings and bug fixes</li>
+
+<li>Added the ability to configure TopicExpressions via a config file. Please see the <a href="dev_guide/index.html">Developer's Guide</a> for more information.</li>
+
+<li>Added a TopicNamespaceRegistry. Please see the <a href="dev_guide/index.html">Developer's Guide</a> for more information.</li>
+
+<li>Removed dependency on Apache WS-Addressing. Since a project goal is to run on platforms other than Axis, and our usages were very simple, we decided to remove the dependency.</li>
+
+</ul>
<p>Changes since the 1.0 Beta release:</p>
<ul>
@@ -199,7 +220,7 @@
<p></p>
</div>
-<a name="N10093"></a><a name="Known+Issues"></a>
+<a name="N100BA"></a><a name="Known+Issues"></a>
<h2 class="boxed">Known Issues</h2>
<div class="section">
<ul>
@@ -208,7 +229,6 @@
framework. This can cause an infinite loop if a home, from its init() method, looks up itself from JNDI.
Though this theoretically should never be necessary, if you must do it, you'll need to wrap the body of your init()
method in a conditional that checks if the home has already been initialized.</li>
-
</ul>
<p>Please submit all issues to the Pubscribe project in
Modified: webservices/pubscribe/site/tutorial/index.html
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/site/tutorial/index.html?rev=328090&r1=328089&r2=328090&view=diff
==============================================================================
--- webservices/pubscribe/site/tutorial/index.html (original)
+++ webservices/pubscribe/site/tutorial/index.html Mon Oct 24 09:18:36 2005
@@ -227,6 +227,12 @@
<li>
+<a href="mod_config.html">Modify the Generated Config File</a>
+
+</li>
+
+<li>
+
<a href="webapp.html">Compile and Deploy the Service</a>
</li>
Modified: webservices/pubscribe/site/tutorial/mod_resource.html
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/site/tutorial/mod_resource.html?rev=328090&r1=328089&r2=328090&view=diff
==============================================================================
--- webservices/pubscribe/site/tutorial/mod_resource.html (original)
+++ webservices/pubscribe/site/tutorial/mod_resource.html Mon Oct 24 09:18:36 2005
@@ -209,9 +209,12 @@
<p>Open <span class="codefrag">WORK_DIR/generated/filesystem/src/java/org/apache/ws/resource/example/filesystem/FilesystemResource.java</span> and
replace the <span class="codefrag">public void init()</span> method with the following method. You will also need to copy the variable and custom operation methods below.</p>
<pre class="code">
-private example.filesystem.backend.FileSystem m_filesystem;
+ private example.filesystem.backend.FileSystem m_filesystem;
-public void init()
+ /**
+ * Initializes this resource's state (properties, etc.).
+ */
+ public void init()
{
super.init();
@@ -237,12 +240,14 @@
DeviceSpecialFileDocument deviceDocXBean = DeviceSpecialFileDocument.Factory.newInstance();
deviceDocXBean.setDeviceSpecialFile( m_filesystem.getDeviceSpecialFile() );
resourceProperty.add( deviceDocXBean );
+ resourceProperty.getMetaData().setReadOnly( true );
resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.TYPE );
TypeDocument typeDocXBean = TypeDocument.Factory.newInstance();
typeDocXBean.setType( m_filesystem.getType() );
resourceProperty.add( typeDocXBean );
-
+ resourceProperty.getMetaData().setReadOnly( true );
+
BackupFrequencyDocument backupDocXBean = BackupFrequencyDocument.Factory.newInstance();
backupDocXBean.setBackupFrequency( m_filesystem.getBackupFrequency() );
resourceProperty = resourcePropertySet.get( FilesystemPropertyQNames.BACKUPFREQUENCY );
@@ -294,39 +299,6 @@
// 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 );
- }
}
Modified: webservices/pubscribe/site/tutorial/wsdl2java.html
URL: http://svn.apache.org/viewcvs/webservices/pubscribe/site/tutorial/wsdl2java.html?rev=328090&r1=328089&r2=328090&view=diff
==============================================================================
--- webservices/pubscribe/site/tutorial/wsdl2java.html (original)
+++ webservices/pubscribe/site/tutorial/wsdl2java.html Mon Oct 24 09:18:36 2005
@@ -5,7 +5,7 @@
<meta content="Apache Forrest" name="Generator">
<meta name="Forrest-version" content="0.6">
<meta name="Forrest-skin-name" content="pelt">
-<title>Run the Wsdl2Java Tool</title>
+<title>Run the WsnWsdl2Java Tool</title>
<link type="text/css" href="../skin/basic.css" rel="stylesheet">
<link media="screen" type="text/css" href="../skin/screen.css" rel="stylesheet">
<link media="print" type="text/css" href="../skin/print.css" rel="stylesheet">
@@ -177,7 +177,7 @@
+-->
<div id="content">
<div id="skinconf-txtlink"></div>
-<h1>Run the Wsdl2Java Tool</h1>
+<h1>Run the WsnWsdl2Java Tool</h1>
<div id="minitoc-area">
<ul class="minitoc">
<li>
@@ -192,7 +192,7 @@
<a name="N1000C"></a><a name="Introduction"></a>
<h2 class="boxed">Introduction</h2>
<div class="section">
-<p>In this step of the tutorial, the Pubscribe Wsdl2Java tool is used to generate a set of artifacts for the filesystem example. The tool takes a WSDL
+<p>In this step of the tutorial, the Pubscribe WsnWsdl2Java tool is used to generate a set of artifacts for the filesystem example. The tool takes a WSDL
as its input and outputs the following artifacts:
</p>
<ul>
@@ -219,7 +219,7 @@
<li>an Axis deploy.wsdd file</li>
-<li>a jndi-config.xml file</li>
+<li>a wsrf-config.xml file</li>
</ul>
<div class="frame note">