From: Arild F. <ari...@br...> - 2006-01-16 22:55:43
|
Nicholas Robinson wrote: > Arild, > > Thanks for writing and sharing what you have done with Draco. I > think the changes to the notifier and how it loads a notifier type > are definitely something Draco would benefit from. I also agree that > the extended notifiers need to live outside of the draco core, so > your design looks good from all accounts. Send it in! :-) Well, it's in there now. Comments/suggestions re the implementation are (of course) welcome. Thanks, -- Arild > > Nick. > > -----Original Message----- > From: dra...@li... > [mailto:dra...@li...]On Behalf Of > Arild Fines > Sent: 16 January 2006 03:28 > To: dra...@li... > Subject: [Draconet-developers] Pluggable notifiers > > > In some cases, the available notification mechanisms available in > Draco .NET today don't fulfill the needs of the development team. In > my case specifically, my project manager expressed a desire to have > the build results posted to our internal Sharepoint site. I managed > to hack this by using the <file> element and pointing it to the > Webdav share exposed by Sharepoint, which made it appear in a > Sharepoint document library. However, this solution has some > drawbacks in that it is hard to review the Sharepoint page for build > success or failure without actually going in and viewing the > document. We also have a pretty large build which makes it hard to > see the errors without color-coding the build output document. > > The solution to this would obviously be to implement a custom > notifier that added an item to a Sharepoint list using the Sharepoint > web service interface. However, I don't feel that such a notifier > belongs in the Draco.NET core code. It is conceivable that other > teams might want to implement other notification mechanisms (an MSN > Messenger/Jabber notifier anyone?), and the Draco.NET core can > obviously not accommodate all such desires. > > Hence the need for a mechanism in which notifiers can be pluggable. > It only took me about 45 minutes to implement this. It works as > follows: > > A tag named "external" is added under "notification" in the config > file: > > <notification> > <external> > <type>TestNamespace.TestNotifier, TestNotifier</type> > <param key="Hello" value="World"/> > <param key="Answer" value="42"/> > </external> > </notification> > > I modified the NotifierFactory to load the type specified in the > "type" tag and cast it to INotifier. If the type implements the > ISupportsParameters interface, the specified parameters are passed to > the instance. > > Is there an interest to have such a mechanism added to Draco? IE, > should I clean this up into a committable state and commit it? |