I haven't been keeping the WSRF WSDLs in SVN - just the schemas - because we don't normally need to include them in the WSDLs generated for user projects. But you're right - they are used by the subscription resource's WSDL. I've added them to muse-wsrf-api/specs in SVN.
Dan "Hawkins, Joel" <[EMAIL PROTECTED]> wrote on 07/27/2006 01:11:21 PM: > WS-ResourceLifetime-1_2.wsdl? Any idea where I find this? It's included > by the BaseNotification. I expected it to be in muse-wsrf-api, but I > don't see it. > > Joel > > > -----Original Message----- > From: Daniel Jemiolo [mailto:[EMAIL PROTECTED] > Sent: Thursday, July 27, 2006 10:58 AM > To: [email protected] > Subject: RE: Possible Missing Operations on SubscriptionManager? > > yes, I'm using the slightly-modified WS-N WSDL in the muse-wsn-api/specs > > directory. > > Dan > > > "Hawkins, Joel" <[EMAIL PROTECTED]> wrote on 07/26/2006 > 04:41:02 > PM: > > > Thanks, yeah - this is about where I've gotten to (after bumping into > > every sharp corner in the room!). I figured out that the subscription > > manager is on the WSResource representing the subscription (which > makes > > your lifetime equivalency argument a lot clearer), and that you can't > > make one of these at startup time (only the notification producer will > > know how to initialize it properly). I'm dubious about your wsdl port > > type, but I'll give it a go - when I tried that I got the "not all > > operations were implemented" error. I'm assuming your wsdl matches > > what's in wsn-api's spec folder? > > > > I've just hit a problem with Axiom trying to serialize > > getResourcePropertyDocument (still investigating), but I think I'll > > finally muddle through all this. > > > > Thanks for the help, > > Joel > > > > -----Original Message----- > > From: Daniel Jemiolo [mailto:[EMAIL PROTECTED] > > Sent: Wednesday, July 26, 2006 4:09 PM > > To: [email protected] > > Subject: RE: Possible Missing Operations on SubscriptionManager? > > > > sorry about the XML getting chopped up by the character limit - > > hopefully > > re-formatting in your editor can put it back in order. > > > > Dan > > > > > > Daniel Jemiolo/Durham/[EMAIL PROTECTED] wrote on 07/26/2006 04:06:05 PM: > > > > > You need two things to deploy a WSN producer - > > > > > > 1. a resource that has the NotificationProducer capability. this is > > the > > > resource that is actually creating events and publishing them. > > > > > > 2. a section resource type that represents subscriptions. this type > > can > > be > > > very simple - just has to implement WSRP Get, WSN > SubscriptionManager, > > > > > and, optionally, WSRL capabilities for lifecycle operations. The > > muse.xml > > > fragment for subscription resources should look like this (even has > > WSRL > > > > > :) ): > > > > > > > > > <resource-type> > > > <context-path>subscription-manager</context-path> > > > <wsdl> > > > > <wsdl-file>wsdl/WS-BaseNotification-1_3.wsdl</ > > > wsdl-file> > > > <wsdl-port-type>wsntw:SubscriptionManager</ > > > wsdl-port-type> > > > </wsdl> > > > <java-id-factory-class> > > > org.apache.muse.core.routing.CounterResourceIdFactory</ > > > java-id-factory-class> > > > <java-resource-class> > > > > > > org.apache.muse.ws.resource.impl.SimpleWsResource</java-resource-class> > > > <capability> > > > <capability-uri> > > > http://docs.oasis-open.org/wsrf/rlw-2/ImmediateResourceTermination</ > > > capability-uri> > > > <java-capability-class> > > > > org.apache.muse.ws.resource.lifetime.impl.SimpleImmediateTermination</ > > > java-capability-class> > > > </capability> > > > <capability> > > > <capability-uri> > > > http://docs.oasis-open.org/wsrf/rlw-2/ScheduledResourceTermination</ > > > capability-uri> > > > <java-capability-class> > > > > org.apache.muse.ws.resource.lifetime.impl.SimpleScheduledTermination</ > > > java-capability-class> > > > </capability> > > > <capability> > > > <capability-uri> > > > http://docs.oasis-open.org/wsrf/rpw-2/Get</capability-uri> > > > <java-capability-class> > > > > org.apache.muse.ws.resource.properties.get.impl.SimpleGetCapability</ > > > java-capability-class> > > > </capability> > > > <capability> > > > <capability-uri> > > > > > > http://docs.oasis-open.org/wsn/bw-2/SubscriptionManager</capability-uri> > > > <java-capability-class> > > > org.apache.muse.ws.notification.impl.SimpleSubscriptionManager</ > > > java-capability-class> > > > <init-param> > > > <param-name>trace-notifications</ > > > param-name> > > > <param-value>true</param-value> > > > </init-param> > > > </capability> > > > </resource-type> > > > > > > > > > > > > At startup, the resource that has NotificationProducer will look for > > > > another resource type that is a subscription type. This will ensure > > that > > > > > it can implement the WSN pub/sub system as intended. It will create > > > instances of the subscription type for every call you make to > > subscribe(). > > > If you use the NotificationProducerClient to call subscribe(), > you'll > > get > > > back an EPR that can be used to talk to the subscription ws-resource > > (to > > > > > call destroy(), for example). > > > > > > > > > Don't create any instances of subscriptions on your own. The > > > NotificationProducer impl will do that. Just handle the creation of > > your > > > > > own resources, and subscriptions will handle themselves. From within > > > your > > > producer resource code, you can publish messages using the code > below. > > > > > Remember that WSRP change notifications and WSRL termination > > notifications > > > are handled automatically. > > > > > > > > > QName topic = ... // can be null > > > > > > Element payload = ... > > > // also works: XmlSerializable payload = ... > > > > > > NotificationProducer wsn = > > > getResource().getCapability(WsnConstants.PRODUCER_URI); > > > wsn.publish(topic, payload); > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > "Hawkins, Joel" <[EMAIL PROTECTED]> wrote on 07/26/2006 > > 01:31:59 > > > PM: > > > > > > > That's what I've done (haven't been sitting around waiting ;-) ) > > > > > > > > So now my resource has the SubscriptionManager capability (which > > seems > > > > wrong, but OK). Now I'm getting some issues with initialization of > > the > > > > SimpleSubscriptionManager - [ID = 'NoProducerEPR'] The > Subscription > > has > > > > no ProducerReference - you must set the producer with > > > > setProducerReference() before initialization. > > > > > > > > I'm creating the resource during startup (using the muse.xml > > > > startupcount attribute). > > > > > > > > So, to review the bidding - > > > > > > > > I started with a simple resource with the following capabilities: > > > > > > > > GetMetaData, > > > > MetaDataCapability > > > > ImmediateResourceTermination > > > > ScheduledResourceTermination > > > > Property Get/Query/Set > > > > > > > > All was well. I then added: > > > > NotificationProducer > > > > Advertisement > > > > > > > > Which required feeding a number of additional properties to the > > schema. > > > > SimpleNotificationProducer complained about not having a > > > > SubscriptionManager. > > > > > > > > Feeding the resource a subscriptionmanager capability is where we > > came > > > > in. > > > > > > > > > > > > Now, I assume that what I really need is to create another > resource > > type > > > > with the subscriptionmanager capability, make it a startup > instance > > of > > > > 1, and put it before my problem child resource in muse.xml, right? > > > Now, > > > > what wsdl should I use? Yesterday I pointed at the WSN wsdl and > used > > > > the > > > > subscriptionmanager port, and that's what started all of this > > (missing > > > > methods and stuff). Where am I going off into the weeds? > > > > > > > > Thanks and sorry for the distraction, > > > > Joel > > > > > > > > > > > > > > > > -----Original Message----- > > > > From: Daniel Jemiolo [mailto:[EMAIL PROTECTED] > > > > Sent: Wednesday, July 26, 2006 12:41 PM > > > > To: [email protected] > > > > Subject: RE: Possible Missing Operations on SubscriptionManager? > > > > > > > > You want to keep SubscriptionManager, but add > > > > ImmediateResourceTermination > > > > and/or ScheduledResourceTermination: > > > > > > > > <capability> > > > > <capability-uri> > > > > > http://docs.oasis-open.org/wsrf/rlw-2/ImmediateResourceTermination</ > > > > capability-uri> > > > > <java-capability-class> > > > > > > org.apache.muse.ws.resource.lifetime.impl.SimpleImmediateTermination</ > > > > java-capability-class> > > > > </capability> > > > > <capability> > > > > <capability-uri> > > > > > http://docs.oasis-open.org/wsrf/rlw-2/ScheduledResourceTermination</ > > > > capability-uri> > > > > <java-capability-class> > > > > > > org.apache.muse.ws.resource.lifetime.impl.SimpleScheduledTermination</ > > > > java-capability-class> > > > > </capability> > > > > > > > > > > > > The IBM stuff is part of MUSE-33 cleanup... > > > > > > > > > > > > > > > > "Hawkins, Joel" <[EMAIL PROTECTED]> wrote on 07/26/2006 > > > > 12:33:30 > > > > PM: > > > > > > > > > Dan wrote > > > > > > > > > > > I didn't implement Unsubscribe and Renew because a) time is > > short, > > > > and > > > > > > b) > > > > > > they are redundant. I believe that the reason these two > > operations > > > > > exist > > > > > > > > > > > > is to allow people to implement subscription resources without > a > > > > > > dependency on WSRF. Subscriptions that are WSRF-based use > > Destroy > > > > for > > > > > > Unsubscribe and SetTerminationTime for Renew - the concepts > are > > > > > exactly > > > > > > the same, but in each case, the former is based on WSRL. With > > Muse, > > > > > all > > > > > > resources implement the implied resource pattern, so most of > the > > > > WS-* > > > > > > foundation that one would be looking to avoid when ditching > WSRF > > > > is > > > > > > already present; that being the case, I would advise someone > to > > just > > > > > add > > > > > > > > > > > > in the WSRL capabilities if either of these operations are > > desired. > > > > > > You're already pulling in WSRF for the NotificationProducer > > impl, > > so > > > > > > > > > > you might as > > > > > > well take advantage of that and use WSRL in the subscription > > > > resource > > > > > > rather than adding duplicate code to the app. > > > > > > > > > > > > > > > > Well, when I remove SubscriptionManager from the mix, I get the > > > > > following out of SimpleNotificationProducer's initialize method: > > > > > > > > > > [ID = 'NoSubscriptionManager'] There is no resource that > > implements > > > > the > > > > > WS-N SubscriptionManager portType defined in touchpoint.xml. In > > order > > > > to > > > > > use and manage subscriptions, a touchpoint must expose a > resource > > of > > > > > type com.ibm.ws.notification.Subscription (or a sub-type); this > > > > resource > > > > > will represent all new subscriptions created by the resource. > > > > > > > > > > I'm at a bit of a loss - any ideas? The com.ibm bit makes me a > bit > > > > > squeamish... am I still skiing out of bounds here? > > > > > > > > > > Thanks, > > > > > Joel > > > > > > > > > > > > > > > The contents of this e-mail are intended for the named addressee > > > only. > > > > > > > > It > > > > > contains information that may be confidential. Unless you are > the > > > > named > > > > > addressee or an authorized designee, you may not copy or use it, > > or > > > > disclose > > > > > it to anyone else. If you received it in error please notify us > > > > immediately > > > > > and then destroy it. > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > The contents of this e-mail are intended for the named addressee > > only. > > > > > It > > > > contains information that may be confidential. Unless you are the > > named > > > > addressee or an authorized designee, you may not copy or use it, > or > > > disclose > > > > it to anyone else. If you received it in error please notify us > > > immediately > > > > and then destroy it. > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > The contents of this e-mail are intended for the named addressee only. > > It > > contains information that may be confidential. Unless you are the > named > > addressee or an authorized designee, you may not copy or use it, or > disclose > > it to anyone else. If you received it in error please notify us > immediately > > and then destroy it. > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > The contents of this e-mail are intended for the named addressee only. It > contains information that may be confidential. Unless you are the named > addressee or an authorized designee, you may not copy or use it, or disclose > it to anyone else. If you received it in error please notify us immediately > and then destroy it. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
