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 "Times New 122 * Roman""> 123 * </span></span><b><i>authInfo</i></b>: This optional argument is an 124 * element that contains an authentication token. 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 "Times New 131 * Roman""> 132 * </span></span><b><i>subscriptionResultsList</i></b>: 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. 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>. 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. 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 "Times New 158 * Roman""> 159 * </span></span><b>E_fatalError: </b>signifies the client’s failure 160 * to receive notification data. 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 }