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]
