org.uddi.sub_v3
Class Subscription

java.lang.Object
  extended by org.uddi.sub_v3.Subscription
All Implemented Interfaces:
Serializable

public class Subscription
extends Object
implements Serializable

UDDI Subscription

The save_subscription API registers a request to monitor specific registry content and to have the node periodically notify the subscriber when changes are available. Notifications are not returned synchronously with results for this API. Only data that matches the requested subscription criteria and which changes after the point in time that the subscription request is accepted is returned to the subscriber via a notification. This API returns a duration for which this particular subscription is valid. Depending upon the policy of the Node, subscriptions need to be renewed before the expiration date in order to insure that they remain active. Subscriptions can also be redefined or renewed using this API. The subscriptionKey pertaining to the subscription to be renewed must be supplied in the save_subscription invocation in order to accomplish this. This allows both renewal and changes to the subscription. Invoking save_subscription automatically resets the expiration period for the subscription in question to a value based upon the node’s policy.

·         authInfo:  This optional argument is an element that contains an authentication token.  Registries that wish to restrict who can save a subscription typically require authInfo for this call, though this is a matter of node policy.

·         bindingKey:  This optional argument of type anyURI specifies the bindingTemplate which the node is to use to deliver notifications to subscription listeners.  It is only required when asynchronous notifications are used.  This bindingTemplate MUST define either a Web service that implements notify_subscriptionListener (see below), or an email address to receive the notifications. If a notify_subscriptionListener Web service is identified, the node invokes it to deliver notifications.  If an email address is identified, the node delivers notifications via email to the address supplied. When notifications are delivered via email, the body of the email contains the body of the SOAP message, which would have been sent to the notify_subscriptionListener service if that option had been chosen.. The publisher making the subscription request MUST own the bindingTemplate.  If this argument is not supplied, no notifications are sent, although subscribers may still use the get_subscriptionResults API to obtain subscription results.  See Section 5.5.11 get_subscriptionResults for details.  If email delivery to the specified address fails, nodes MAY attempt re-delivery, but are not obligated to do so.  Depending upon node policy, excessive delivery failures MAY result in cancellation of the corresponding subscription.

·         brief:  This optional argument controls the level of detail returned to a subscription listener.  The default is "false" when omitted. When set to "true," it indicates that the subscription results are to be returned to the subscriber in the form of a keyBag, listing all of the entities that matched the subscriptionFilter.  Refer to Section 5.5.6 Use of keyBag in Subscription, for additional information.  This option has no effect on the assertionStatusReport structure, which is returned as part of a notification when the subscriptionFilter specifies the get_assertionStatusReport filter criteria.  See the explanation of subscriptionFilter below.

·         expiresAfter:  This optional argument allows subscribers to specify the period of time for which they would like the subscription to exist.  It is of the XML Schema type xsd:dateTime.  Specifying a value for this argument is no guarantee that the node will accept it without change.  Information on the format of expiresAfter can be found in Section 5.5.1.1 Specifying Durations.

·         maxEntities:  This optional integer specifies the maximum number of entities in a notification returned to a subscription listener. If not specified, the number of entities sent is not limited, unless by node policy.

·         subscriptionFilter:  This argument specifies the filtering criteria which limits the scope of a subscription to a subset of registry records. It is required except when renewing an existing subscription. The get_xx and find_xx APIs are all valid choices for use as a subscriptionFilter.  Only one of these can be chosen for each subscription.  Notifications, based on the subscriptionFilter, are sent to the subscriber if and only if there are changes at the node, which match this criterion during a notification period.  A subscriptionFilter MUST contain exactly one of the allowed inquiry elements. The authInfo argument of the specified get_xx or find_xx API call is not required here and is ignored if specified.  All of the other arguments supported with each of these inquiry APIs are valid for use here.

Specifying find_relatedBusinesses is useful for tracking when reciprocal relationships are formed or dissolved.  Specifying get_assertionStatusReport can be used in tracking when reciprocal relationships (which pertain to a business owned by the subscriber) are formed, dissolved, or requested by the owners of some other business.

For a get_assertionStatusReport based subscription, there is a specific status value, status:both_incomplete, defined in the XML schema. When appearing in an assertionStatusItem of a subscriptionResultsList, status:both_incomplete indicates that the publisher assertion embedded in the assertionStatusItem has been deleted from both ends.

Note that the above handling of deleted publisher assertions is different from the case when a business entity, business service, binding template, or tModel is removed. In the latter case, the key to the entity in question is simply put inside a keyBag. A publisher assertion, on the other hand, has no key and therefore the keyBag idea is not applicable.

·         subscriptionKey:  This optional argument of type anyURI identifies the subscription.  To renew or change an existing subscription, a valid subscriptionKey MUST be provided. When establishing a new subscription, the subscriptionKey MAY also be either omitted or specified as an empty string in which case the node MUST assign a unique key. If subscriptionKey is specified for a new subscription, the key MUST conform to the registry’s policy on publisher-assigned keys.

·         notificationInterval:  This optional argument is only required when asynchronous notifications are used.  It is of type xsd:duration and specifies how often change notifications are to be provided to a subscriber.  If the notificationInterval specified is not acceptable due to node policy, then the node adjusts the value to match the next longer time period that is supported.  The adjusted value is provided with the returns from this API.  Also see Section 5.5.1.1 Specifying Durations.

Java class for subscription complex type.

The following schema fragment specifies the expected content contained within this class.

 <complexType name="subscription">
   <complexContent>
     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
       <sequence>
         <element ref="{urn:uddi-org:sub_v3}subscriptionKey" minOccurs="0"/>
         <element ref="{urn:uddi-org:sub_v3}subscriptionFilter" minOccurs="0"/>
         <element ref="{urn:uddi-org:api_v3}bindingKey" minOccurs="0"/>
         <element ref="{urn:uddi-org:sub_v3}notificationInterval" minOccurs="0"/>
         <element ref="{urn:uddi-org:sub_v3}maxEntities" minOccurs="0"/>
         <element ref="{urn:uddi-org:sub_v3}expiresAfter" minOccurs="0"/>
       </sequence>
       <attribute name="brief" type="{urn:uddi-org:sub_v3}brief" />
     </restriction>
   </complexContent>
 </complexType>
 

See Also:
Serialized Form

Field Summary
protected  String bindingKey
           
protected  Boolean brief
           
protected  XMLGregorianCalendar expiresAfter
           
protected  Integer maxEntities
           
protected  Duration notificationInterval
           
protected  SubscriptionFilter subscriptionFilter
           
protected  String subscriptionKey
           
 
Constructor Summary
Subscription()
           
 
Method Summary
 String getBindingKey()
          Gets the value of the bindingKey property.
 XMLGregorianCalendar getExpiresAfter()
          Gets the value of the expiresAfter property.
 Integer getMaxEntities()
          Gets the value of the maxEntities property.
 Duration getNotificationInterval()
          Gets the value of the notificationInterval property.
 SubscriptionFilter getSubscriptionFilter()
          Gets the value of the subscriptionFilter property.
 String getSubscriptionKey()
          Gets the value of the subscriptionKey property.
 Boolean isBrief()
          Gets the value of the brief property.
 void setBindingKey(String value)
          Sets the value of the bindingKey property.
 void setBrief(Boolean value)
          Sets the value of the brief property.
 void setExpiresAfter(XMLGregorianCalendar value)
          Sets the value of the expiresAfter property.
 void setMaxEntities(Integer value)
          Sets the value of the maxEntities property.
 void setNotificationInterval(Duration value)
          Sets the value of the notificationInterval property.
 void setSubscriptionFilter(SubscriptionFilter value)
          Sets the value of the subscriptionFilter property.
 void setSubscriptionKey(String value)
          Sets the value of the subscriptionKey property.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

subscriptionKey

protected String subscriptionKey

subscriptionFilter

protected SubscriptionFilter subscriptionFilter

bindingKey

protected String bindingKey

notificationInterval

protected Duration notificationInterval

maxEntities

protected Integer maxEntities

expiresAfter

protected XMLGregorianCalendar expiresAfter

brief

protected Boolean brief
Constructor Detail

Subscription

public Subscription()
Method Detail

getSubscriptionKey

public String getSubscriptionKey()
Gets the value of the subscriptionKey property.

Returns:
possible object is String

setSubscriptionKey

public void setSubscriptionKey(String value)
Sets the value of the subscriptionKey property.

Parameters:
value - allowed object is String

getSubscriptionFilter

public SubscriptionFilter getSubscriptionFilter()
Gets the value of the subscriptionFilter property.

Returns:
possible object is SubscriptionFilter

setSubscriptionFilter

public void setSubscriptionFilter(SubscriptionFilter value)
Sets the value of the subscriptionFilter property.

Parameters:
value - allowed object is SubscriptionFilter

getBindingKey

public String getBindingKey()
Gets the value of the bindingKey property.

Returns:
possible object is String

setBindingKey

public void setBindingKey(String value)
Sets the value of the bindingKey property.

Parameters:
value - allowed object is String

getNotificationInterval

public Duration getNotificationInterval()
Gets the value of the notificationInterval property.

Returns:
possible object is Duration

setNotificationInterval

public void setNotificationInterval(Duration value)
Sets the value of the notificationInterval property.

Parameters:
value - allowed object is Duration

getMaxEntities

public Integer getMaxEntities()
Gets the value of the maxEntities property.

Returns:
possible object is Integer

setMaxEntities

public void setMaxEntities(Integer value)
Sets the value of the maxEntities property.

Parameters:
value - allowed object is Integer

getExpiresAfter

public XMLGregorianCalendar getExpiresAfter()
Gets the value of the expiresAfter property.

Returns:
possible object is XMLGregorianCalendar

setExpiresAfter

public void setExpiresAfter(XMLGregorianCalendar value)
Sets the value of the expiresAfter property.

Parameters:
value - allowed object is XMLGregorianCalendar

isBrief

public Boolean isBrief()
Gets the value of the brief property.

Returns:
possible object is Boolean

setBrief

public void setBrief(Boolean value)
Sets the value of the brief property.

Parameters:
value - allowed object is Boolean


Copyright © 2004-2013 The Apache Software Foundation. All Rights Reserved.