View Javadoc
1   /*
2    * Copyright 2001-2008 The Apache Software Foundation.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * 
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    * 
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   *
16   */
17  package org.uddi.v3_service;
18  
19  import java.rmi.Remote;
20  import java.rmi.RemoteException;
21  
22  import javax.jws.WebMethod;
23  import javax.jws.WebParam;
24  import javax.jws.WebResult;
25  import javax.jws.WebService;
26  import javax.jws.soap.SOAPBinding;
27  import javax.xml.bind.annotation.XmlSeeAlso;
28  import org.uddi.api_v3.DispositionReport;
29  import org.uddi.subr_v3.NotifySubscriptionListener;
30  
31  /**
32   * This portType defines all of the UDDI subscriptionListener operations.
33   *
34   * This class was generated by the JAX-WS RI. JAX-WS RI 2.1.5-b03- Generated
35   * source version: 2.1
36   * 
37   * <h1>Notes from the jUDDI development team</h1>
38   * To implement a callback for UDDI subscriptions:
39   * <ol><li>Implement your own instance of this class.</li>
40   * <li>Decide whether or not you want to host your implementation within a web servlet container. If the answer is yes, follow standard procedures for doing so.</li>
41   * <li>If you're hosting it yourself, try out the following code. You'll need either JDK 1.6+ or Apache CXF with the Jetty libraries within your classpath
42   * <pre>
43       String url = "http://localhost:7777/uddi_subscription_back";
44       Endpoint ep = Endpoint.publish(url, new ClientSubscriptionCallback(this));
45  </pre><br>
46  * Where "ClientSubscriptionCallback" is your implementation class for this interface
47  * </li>
48  * </ol>
49   * 
50   * <h1>Notes from the UDDI Spec</h1>
51   * This API, when implemented by a subscriber and specified in a subscription,
52   * enables the node to deliver notifications to subscription listeners by
53   * invoking a Web service. New, modified, and deleted data that matches the
54   * subscription is passed to notify_subscriptionListener. If the brief attribute
55   * of the subscription is "true", then only the relevant keys will be sent; full
56   * details of the changed data can be accomplished via the standard get_xx API’s
57   * if required. If a particular item that matches the subscription criteria is
58   * deleted during the notificationInterval, or is changed in such a way that it
59   * no longer matches the criterion defined for the subscription, then these
60   * entities are included in a keyBag containing a deleted element with a value
61   * of "true".
62   *
63   * To allow subscribers to determine whether a notification has been lost, the
64   * coverage period of the notification is included. A date/time indicating the
65   * date/time values corresponding to the start and end points of this is
66   * provided. The start date/time used in this call SHOULD align with the end
67   * date/time of the previous call and so fourth.  *
68   * If the maxEntities option was specified in the save_subscription call, the
69   * response supplied via this call is limited to that number of entities. If the
70   * node cannot send all of the results in a single notify_subscriptionListener
71   * call, then the node repeatedly invokes the notify_subscriptionListener
72   * service until all information has been transmitted. In no case will the data
73   * sent to notify_subscriptionListener exceed the maximum message size per the
74   * policy of the node.
75   *
76   */
77  @WebService(name = "UDDI_SubscriptionListener_PortType", targetNamespace = "urn:uddi-org:api_v3_portType")
78  @XmlSeeAlso({
79      org.uddi.custody_v3.ObjectFactory.class,
80      org.uddi.repl_v3.ObjectFactory.class,
81      org.uddi.subr_v3.ObjectFactory.class,
82      org.uddi.api_v3.ObjectFactory.class,
83      org.uddi.vscache_v3.ObjectFactory.class,
84      org.uddi.vs_v3.ObjectFactory.class,
85      org.uddi.sub_v3.ObjectFactory.class,
86      org.w3._2000._09.xmldsig_.ObjectFactory.class,
87      org.uddi.policy_v3.ObjectFactory.class,
88      org.uddi.policy_v3_instanceparms.ObjectFactory.class
89  })
90  public interface UDDISubscriptionListenerPortType extends Remote {
91  
92      /**
93       * This API, when implemented by a subscriber and specified in a
94       * subscription, enables the node to deliver notifications to subscription
95       * listeners by invoking a Web service. New, modified, and deleted data that
96       * matches the subscription is passed to notify_subscriptionListener. If the
97       * brief attribute of the subscription is "true", then only the relevant
98       * keys will be sent; full details of the changed data can be accomplished
99       * via the standard get_xx API’s if required. If a particular item that
100      * matches the subscription criteria is deleted during the
101      * notificationInterval, or is changed in such a way that it no longer
102      * matches the criterion defined for the subscription, then these entities
103      * are included in a keyBag containing a deleted element with a value of
104      * "true".
105      *
106      * To allow subscribers to determine whether a notification has been lost,
107      * the coverage period of the notification is included. A date/time
108      * indicating the date/time values corresponding to the start and end points
109      * of this is provided. The start date/time used in this call SHOULD align
110      * with the end date/time of the previous call and so fourth.      *
111      * If the maxEntities option was specified in the save_subscription call,
112      * the response supplied via this call is limited to that number of
113      * entities. If the node cannot send all of the results in a single
114      * notify_subscriptionListener call, then the node repeatedly invokes the
115      * notify_subscriptionListener service until all information has been
116      * transmitted. In no case will the data sent to notify_subscriptionListener
117      * exceed the maximum message size per the policy of the node.
118      *
119      * @param body <p class="MsoBodyText"
120      * style="margin-left:1.0in;text-indent:-.25in"><span
121      * style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
122      * Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
123      * </span></span><b><i>authInfo</i></b>:&nbsp; This optional argument is an
124      * element that contains an authentication token.&nbsp; Subscription
125      * listener services that wish to restrict who can transmit subscription
126      * data MAY require authInfo for this call, though this is a matter of
127      * client policy.</p>
128      *
129      * <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
130      * style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
131      * Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
132      * </span></span><b><i>subscriptionResultsList</i></b>:&nbsp; This list
133      * contains the results for this notification, which consist of the result
134      * structures which are normally returned for standard find_xx or get_xx
135      * APIs, based upon the criteria saved in the subscriptionFilter for the
136      * subscription which is generating this notification. Note that the
137      * chunkToken is not returned with this structure for this API.&nbsp; The
138      * subscriptionResultsList also contains a coveragePeriod structure which
139      * defines the time period over which the node data is compared with the
140      * subscription criterion in order to produce the result set. It provides
141      * the start and end date/time information according to the format described
142      * in Section <a href="#_Ref3402225 ">5.5.4</a> <i>Subscription Coverage
143      * Period</i>.&nbsp; The "current" state of registry entries pertaining to
144      * the subscription referenced by the subscriptionKey provided are returned
145      * if they were last changed during the specified time period. See Section
146      * <a href="#_Ref42320503 ">5.5.11.3</a> <i>Returns</i> for more information
147      * on the subscriptionResultsList’s content.</p>
148      * @return returns org.uddi.api_v3.DispositionReport Upon successful
149      * completion, notify_subscriptionListener returns an empty message. Note
150      * that this is being returned by the client supported API.
151      * @throws DispositionReportFaultMessage <p class="MsoBodyText">If an error
152      * occurs in processing this API call, a dispositionReport structure is
153      * returned to the caller in a SOAP Fault.&nbsp; In addition to the errors
154      * common to all APIs, the following error information is relevant here:</p>
155      *
156      * <p class="MsoBodyText" style="margin-left:1.0in;text-indent:-.25in"><span
157      * style="font-family:Symbol">·<span style="font:7.0pt &quot;Times New
158      * Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
159      * </span></span><b>E_fatalError:&nbsp; </b>signifies the client’s failure
160      * to receive notification data.&nbsp;&nbsp; The node is not obligated to
161      * retry.</p>
162      */
163     @WebMethod(operationName = "notify_subscriptionListener", action = "notify_subscriptionListener")
164     @WebResult(name = "dispositionReport", targetNamespace = "urn:uddi-org:api_v3", partName = "body")
165     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
166     public DispositionReport notifySubscriptionListener(
167             @WebParam(name = "notify_subscriptionListener", targetNamespace = "urn:uddi-org:subr_v3", partName = "body") NotifySubscriptionListener body)
168             throws DispositionReportFaultMessage, RemoteException;
169 }