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]
