Loading ...
Sorry, an error occurred while loading the content.

Subclassing SOAP::Transport::HTTP::Daemon

Expand Messages
  • Michael Percy
    Hello, I am trying to catch SIG{INT} and gracefully close the connection in the daemon implementation of the SOAP::Lite server. However, I cannot seem to
    Message 1 of 6 , Feb 13 1:43 PM
    • 0 Attachment
      Hello,
      I am trying to catch SIG{INT} and gracefully close the connection in the
      daemon implementation of the SOAP::Lite server. However, I cannot seem to
      subclass SOAP::Transport::HTTP::Daemon!

      I believe this problem stems from the fact that all of the
      SOAP::Transport::HTTP::* classes reside in one file: SOAP/Transport/HTTP.pm.
      I am perfectly able to "use SOAP::Transport::HTTP" and then instantiate a
      ::Daemon class or ::Server class but I cannot for the life of me inherit
      from one!

      When I put SOAP::Transport::HTTP::Daemon in my @ISA array, even if I am
      "use"ing SOAP::Transport::HTTP, when I try to create an object of my
      subclass I get the error: 'Can't locate object method "new" via package
      "MyDaemon"' (my subclass). It is really strange.

      Does the @ISA "classloader" mechanism work differently that the @INC
      classloader mechanism? What I mean is, am I doing something wrong/being
      stupid, is Perl having problems, or was what the author did an unsupported
      use of packages/classes?

      Is there a workaround? ( !!! :-)

      Hope I have been clear enough!


      Regards,

      Michael Percy
      Software Engineer, Portera Systems
    • Paul Kulchenko
      Hi, Michael! Why not? There is no restrictions on subclassing or inheritance. Take a look into examples/SOAP/Transport/HTTP/ForkingDaemon which is inherited
      Message 2 of 6 , Feb 13 2:05 PM
      • 0 Attachment
        Hi, Michael!

        Why not? There is no restrictions on subclassing or inheritance. Take
        a look into examples/SOAP/Transport/HTTP/ForkingDaemon which is
        inherited from SOAP::Transport::HTTP::Daemon.

        As for SIG{INT} I planned to add SIG{PIPE} and SIG{INT} handlers, but
        don't do it yet, so if you could provide a code or example I'll
        incorporate it into Transport::HTTP::Daemon implementation. Thank
        you.

        Best wishes, Paul.

        --- Michael Percy <mpercy@...> wrote:
        > Hello,
        > I am trying to catch SIG{INT} and gracefully close the connection
        > in the
        > daemon implementation of the SOAP::Lite server. However, I cannot
        > seem to
        > subclass SOAP::Transport::HTTP::Daemon!
        >
        > I believe this problem stems from the fact that all of the
        > SOAP::Transport::HTTP::* classes reside in one file:
        > SOAP/Transport/HTTP.pm.
        > I am perfectly able to "use SOAP::Transport::HTTP" and then
        > instantiate a
        > ::Daemon class or ::Server class but I cannot for the life of me
        > inherit
        > from one!
        >
        > When I put SOAP::Transport::HTTP::Daemon in my @ISA array, even if
        > I am
        > "use"ing SOAP::Transport::HTTP, when I try to create an object of
        > my
        > subclass I get the error: 'Can't locate object method "new" via
        > package
        > "MyDaemon"' (my subclass). It is really strange.
        >
        > Does the @ISA "classloader" mechanism work differently that the
        > @INC
        > classloader mechanism? What I mean is, am I doing something
        > wrong/being
        > stupid, is Perl having problems, or was what the author did an
        > unsupported
        > use of packages/classes?
        >
        > Is there a workaround? ( !!! :-)
        >
        > Hope I have been clear enough!
        >
        >
        > Regards,
        >
        > Michael Percy
        > Software Engineer, Portera Systems
        >
        > ------------------------ Yahoo! Groups Sponsor
        >
        > To unsubscribe from this group, send an email to:
        > soaplite-unsubscribe@yahoogroups.com
        >
        >
        >


        __________________________________________________
        Do You Yahoo!?
        Get personalized email addresses from Yahoo! Mail - only $35
        a year! http://personal.mail.yahoo.com/
      • Michael Percy
        Paul, I tried to subclass it and even used the code from forkingdaemon.pm in my own module but it would not work for me. Have you tried putting the definition
        Message 3 of 6 , Feb 13 2:37 PM
        • 0 Attachment
          Paul,
          I tried to subclass it and even used the code from forkingdaemon.pm in my
          own module but it would not work for me. Have you tried putting the
          definition of a subclass outside of SOAP/Transport/HTTP.pm and tried to
          instantiate it? If you could get that to work I would be very much
          appreciative! (else just tell me I'm being stupid and to try again ;) I
          tried for several hours yesterday to no avail. (note: it did work if I put
          my new class in your module file).

          Thanks!
          Michael

          > -----Original Message-----
          > From: Paul Kulchenko [mailto:paulclinger@...]
          > Sent: Tuesday, February 13, 2001 2:05 PM
          > To: soaplite@yahoogroups.com
          > Subject: Re: [soaplite] Subclassing SOAP::Transport::HTTP::Daemon
          >
          >
          > Hi, Michael!
          >
          > Why not? There is no restrictions on subclassing or inheritance. Take
          > a look into examples/SOAP/Transport/HTTP/ForkingDaemon which is
          > inherited from SOAP::Transport::HTTP::Daemon.
          >
          > As for SIG{INT} I planned to add SIG{PIPE} and SIG{INT} handlers, but
          > don't do it yet, so if you could provide a code or example I'll
          > incorporate it into Transport::HTTP::Daemon implementation. Thank
          > you.
          >
          > Best wishes, Paul.
          >
          > --- Michael Percy <mpercy@...> wrote:
          > > Hello,
          > > I am trying to catch SIG{INT} and gracefully close the connection
          > > in the
          > > daemon implementation of the SOAP::Lite server. However, I cannot
          > > seem to
          > > subclass SOAP::Transport::HTTP::Daemon!
          > >
          > > I believe this problem stems from the fact that all of the
          > > SOAP::Transport::HTTP::* classes reside in one file:
          > > SOAP/Transport/HTTP.pm.
          > > I am perfectly able to "use SOAP::Transport::HTTP" and then
          > > instantiate a
          > > ::Daemon class or ::Server class but I cannot for the life of me
          > > inherit
          > > from one!
          > >
          > > When I put SOAP::Transport::HTTP::Daemon in my @ISA array, even if
          > > I am
          > > "use"ing SOAP::Transport::HTTP, when I try to create an object of
          > > my
          > > subclass I get the error: 'Can't locate object method "new" via
          > > package
          > > "MyDaemon"' (my subclass). It is really strange.
          > >
          > > Does the @ISA "classloader" mechanism work differently that the
          > > @INC
          > > classloader mechanism? What I mean is, am I doing something
          > > wrong/being
          > > stupid, is Perl having problems, or was what the author did an
          > > unsupported
          > > use of packages/classes?
          > >
          > > Is there a workaround? ( !!! :-)
          > >
          > > Hope I have been clear enough!
          > >
          > >
          > > Regards,
          > >
          > > Michael Percy
          > > Software Engineer, Portera Systems
          > >
          > > ------------------------ Yahoo! Groups Sponsor
          > >
          > > To unsubscribe from this group, send an email to:
          > > soaplite-unsubscribe@yahoogroups.com
          > >
          > >
          > >
          >
          >
          > __________________________________________________
          > Do You Yahoo!?
          > Get personalized email addresses from Yahoo! Mail - only $35
          > a year! http://personal.mail.yahoo.com/
          >
          > ------------------------ Yahoo! Groups Sponsor
          > ---------------------~-~>
          > eGroups is now Yahoo! Groups
          > Click here for more details
          > http://click.egroups.com/1/11231/1/_/_/_/982101923/
          > --------------------------------------------------------------
          > -------_->
          >
          > To unsubscribe from this group, send an email to:
          > soaplite-unsubscribe@yahoogroups.com
          >
          >
          >
        • Paul Kulchenko
          Hi, Michael! Ok, lets take saop.daemon and modify it to call My::Daemon. Following code will work exactly as usual SOAP::Transport::HTTP::Daemon: use
          Message 4 of 6 , Feb 13 6:07 PM
          • 0 Attachment
            Hi, Michael!

            Ok, lets take saop.daemon and modify it to call My::Daemon. Following
            code will work exactly as usual SOAP::Transport::HTTP::Daemon:

            use SOAP::Transport::HTTP;

            my $daemon = My::Daemon
            -> new (LocalAddr => 'localhost', LocalPort => 80)
            -> objects_by_reference(qw(My::PersistentIterator
            My::SessionIterator My::Chat))
            -> dispatch_to('/Your/Path/To/Deployed/Modules', 'Module::Name',
            'Module::method')
            ;
            print "Contact to SOAP server at ", $daemon->url, "\n";
            $daemon->handle;

            BEGIN {
            package My::Daemon;
            use SOAP::Transport::HTTP;
            @ISA = 'SOAP::Transport::HTTP::Daemon';
            }

            You may put inside your methods or whatever you want. Hope it helps.

            Best wishes, Paul.

            --- Michael Percy <mpercy@...> wrote:
            > Paul,
            > I tried to subclass it and even used the code from forkingdaemon.pm
            > in my
            > own module but it would not work for me. Have you tried putting the
            > definition of a subclass outside of SOAP/Transport/HTTP.pm and
            > tried to
            > instantiate it? If you could get that to work I would be very much
            > appreciative! (else just tell me I'm being stupid and to try again
            > ;) I
            > tried for several hours yesterday to no avail. (note: it did work
            > if I put
            > my new class in your module file).
            >
            > Thanks!
            > Michael
            >
            > > -----Original Message-----
            > > From: Paul Kulchenko [mailto:paulclinger@...]
            > > Sent: Tuesday, February 13, 2001 2:05 PM
            > > To: soaplite@yahoogroups.com
            > > Subject: Re: [soaplite] Subclassing SOAP::Transport::HTTP::Daemon
            > >
            > >
            > > Hi, Michael!
            > >
            > > Why not? There is no restrictions on subclassing or inheritance.
            > Take
            > > a look into examples/SOAP/Transport/HTTP/ForkingDaemon which is
            > > inherited from SOAP::Transport::HTTP::Daemon.
            > >
            > > As for SIG{INT} I planned to add SIG{PIPE} and SIG{INT} handlers,
            > but
            > > don't do it yet, so if you could provide a code or example I'll
            > > incorporate it into Transport::HTTP::Daemon implementation. Thank
            > > you.
            > >
            > > Best wishes, Paul.
            > >
            > > --- Michael Percy <mpercy@...> wrote:
            > > > Hello,
            > > > I am trying to catch SIG{INT} and gracefully close the
            > connection
            > > > in the
            > > > daemon implementation of the SOAP::Lite server. However, I
            > cannot
            > > > seem to
            > > > subclass SOAP::Transport::HTTP::Daemon!
            > > >
            > > > I believe this problem stems from the fact that all of the
            > > > SOAP::Transport::HTTP::* classes reside in one file:
            > > > SOAP/Transport/HTTP.pm.
            > > > I am perfectly able to "use SOAP::Transport::HTTP" and then
            > > > instantiate a
            > > > ::Daemon class or ::Server class but I cannot for the life of
            > me
            > > > inherit
            > > > from one!
            > > >
            > > > When I put SOAP::Transport::HTTP::Daemon in my @ISA array, even
            > if
            > > > I am
            > > > "use"ing SOAP::Transport::HTTP, when I try to create an object
            > of
            > > > my
            > > > subclass I get the error: 'Can't locate object method "new" via
            > > > package
            > > > "MyDaemon"' (my subclass). It is really strange.
            > > >
            > > > Does the @ISA "classloader" mechanism work differently that the
            > > > @INC
            > > > classloader mechanism? What I mean is, am I doing something
            > > > wrong/being
            > > > stupid, is Perl having problems, or was what the author did an
            > > > unsupported
            > > > use of packages/classes?
            > > >
            > > > Is there a workaround? ( !!! :-)
            > > >
            > > > Hope I have been clear enough!
            > > >
            > > >
            > > > Regards,
            > > >
            > > > Michael Percy
            > > > Software Engineer, Portera Systems
            > > >
            > > > ------------------------ Yahoo! Groups Sponsor
            > > >
            > > > To unsubscribe from this group, send an email to:
            > > > soaplite-unsubscribe@yahoogroups.com
            > > >
            > > >
            > > >
            > >
            > >
            > > __________________________________________________
            > > Do You Yahoo!?
            > > Get personalized email addresses from Yahoo! Mail - only $35
            > > a year! http://personal.mail.yahoo.com/
            > >
            > > ------------------------ Yahoo! Groups Sponsor
            > > ---------------------~-~>
            > > eGroups is now Yahoo! Groups
            > > Click here for more details
            > > http://click.egroups.com/1/11231/1/_/_/_/982101923/
            > > --------------------------------------------------------------
            > > -------_->
            > >
            > > To unsubscribe from this group, send an email to:
            > > soaplite-unsubscribe@yahoogroups.com
            > >
            > >
            > >
            >
            > ------------------------ Yahoo! Groups Sponsor
            >
            > To unsubscribe from this group, send an email to:
            > soaplite-unsubscribe@yahoogroups.com
            >
            >
            >


            __________________________________________________
            Do You Yahoo!?
            Get personalized email addresses from Yahoo! Mail - only $35
            a year! http://personal.mail.yahoo.com/
          • Michael Percy
            Paul, That BEGIN block certainly did it! I don t know if that was just an experience thing but you have really made my day. Thank you very much, sir ...
            Message 5 of 6 , Feb 13 6:32 PM
            • 0 Attachment
              Paul,
              That BEGIN block certainly did it! I don't know if that was just an
              experience thing but you have really made my day. Thank you very much, sir
              :)

              Regards,
              Michael Percy

              > -----Original Message-----
              > From: Paul Kulchenko [mailto:paulclinger@...]
              > Sent: Tuesday, February 13, 2001 6:07 PM
              > To: soaplite@yahoogroups.com
              > Subject: RE: [soaplite] Subclassing SOAP::Transport::HTTP::Daemon
              >
              >
              > Hi, Michael!
              >
              > Ok, lets take saop.daemon and modify it to call My::Daemon. Following
              > code will work exactly as usual SOAP::Transport::HTTP::Daemon:
              >
              > use SOAP::Transport::HTTP;
              >
              > my $daemon = My::Daemon
              > -> new (LocalAddr => 'localhost', LocalPort => 80)
              > -> objects_by_reference(qw(My::PersistentIterator
              > My::SessionIterator My::Chat))
              > -> dispatch_to('/Your/Path/To/Deployed/Modules', 'Module::Name',
              > 'Module::method')
              > ;
              > print "Contact to SOAP server at ", $daemon->url, "\n";
              > $daemon->handle;
              >
              > BEGIN {
              > package My::Daemon;
              > use SOAP::Transport::HTTP;
              > @ISA = 'SOAP::Transport::HTTP::Daemon';
              > }
              >
              > You may put inside your methods or whatever you want. Hope it helps.
              >
              > Best wishes, Paul.
              >
              > --- Michael Percy <mpercy@...> wrote:
              > > Paul,
              > > I tried to subclass it and even used the code from forkingdaemon.pm
              > > in my
              > > own module but it would not work for me. Have you tried putting the
              > > definition of a subclass outside of SOAP/Transport/HTTP.pm and
              > > tried to
              > > instantiate it? If you could get that to work I would be very much
              > > appreciative! (else just tell me I'm being stupid and to try again
              > > ;) I
              > > tried for several hours yesterday to no avail. (note: it did work
              > > if I put
              > > my new class in your module file).
              > >
              > > Thanks!
              > > Michael
              > >
              > > > -----Original Message-----
              > > > From: Paul Kulchenko [mailto:paulclinger@...]
              > > > Sent: Tuesday, February 13, 2001 2:05 PM
              > > > To: soaplite@yahoogroups.com
              > > > Subject: Re: [soaplite] Subclassing SOAP::Transport::HTTP::Daemon
              > > >
              > > >
              > > > Hi, Michael!
              > > >
              > > > Why not? There is no restrictions on subclassing or inheritance.
              > > Take
              > > > a look into examples/SOAP/Transport/HTTP/ForkingDaemon which is
              > > > inherited from SOAP::Transport::HTTP::Daemon.
              > > >
              > > > As for SIG{INT} I planned to add SIG{PIPE} and SIG{INT} handlers,
              > > but
              > > > don't do it yet, so if you could provide a code or example I'll
              > > > incorporate it into Transport::HTTP::Daemon implementation. Thank
              > > > you.
              > > >
              > > > Best wishes, Paul.
              > > >
              > > > --- Michael Percy <mpercy@...> wrote:
              > > > > Hello,
              > > > > I am trying to catch SIG{INT} and gracefully close the
              > > connection
              > > > > in the
              > > > > daemon implementation of the SOAP::Lite server. However, I
              > > cannot
              > > > > seem to
              > > > > subclass SOAP::Transport::HTTP::Daemon!
              > > > >
              > > > > I believe this problem stems from the fact that all of the
              > > > > SOAP::Transport::HTTP::* classes reside in one file:
              > > > > SOAP/Transport/HTTP.pm.
              > > > > I am perfectly able to "use SOAP::Transport::HTTP" and then
              > > > > instantiate a
              > > > > ::Daemon class or ::Server class but I cannot for the life of
              > > me
              > > > > inherit
              > > > > from one!
              > > > >
              > > > > When I put SOAP::Transport::HTTP::Daemon in my @ISA array, even
              > > if
              > > > > I am
              > > > > "use"ing SOAP::Transport::HTTP, when I try to create an object
              > > of
              > > > > my
              > > > > subclass I get the error: 'Can't locate object method "new" via
              > > > > package
              > > > > "MyDaemon"' (my subclass). It is really strange.
              > > > >
              > > > > Does the @ISA "classloader" mechanism work differently that the
              > > > > @INC
              > > > > classloader mechanism? What I mean is, am I doing something
              > > > > wrong/being
              > > > > stupid, is Perl having problems, or was what the author did an
              > > > > unsupported
              > > > > use of packages/classes?
              > > > >
              > > > > Is there a workaround? ( !!! :-)
              > > > >
              > > > > Hope I have been clear enough!
              > > > >
              > > > >
              > > > > Regards,
              > > > >
              > > > > Michael Percy
              > > > > Software Engineer, Portera Systems
              > > > >
              > > > > ------------------------ Yahoo! Groups Sponsor
              > > > >
              > > > > To unsubscribe from this group, send an email to:
              > > > > soaplite-unsubscribe@yahoogroups.com
              > > > >
              > > > >
              > > > >
              > > >
              > > >
              > > > __________________________________________________
              > > > Do You Yahoo!?
              > > > Get personalized email addresses from Yahoo! Mail - only $35
              > > > a year! http://personal.mail.yahoo.com/
              > > >
              > > > ------------------------ Yahoo! Groups Sponsor
              > > > ---------------------~-~>
              > > > eGroups is now Yahoo! Groups
              > > > Click here for more details
              > > > http://click.egroups.com/1/11231/1/_/_/_/982101923/
              > > > --------------------------------------------------------------
              > > > -------_->
              > > >
              > > > To unsubscribe from this group, send an email to:
              > > > soaplite-unsubscribe@yahoogroups.com
              > > >
              > > >
              > > >
              > >
              > > ------------------------ Yahoo! Groups Sponsor
              > >
              > > To unsubscribe from this group, send an email to:
              > > soaplite-unsubscribe@yahoogroups.com
              > >
              > >
              > >
              >
              >
              > __________________________________________________
              > Do You Yahoo!?
              > Get personalized email addresses from Yahoo! Mail - only $35
              > a year! http://personal.mail.yahoo.com/
              >
              > ------------------------ Yahoo! Groups Sponsor
              > ---------------------~-~>
              > eGroups is now Yahoo! Groups
              > Click here for more details
              > http://click.egroups.com/1/11231/1/_/_/_/982116422/
              > --------------------------------------------------------------
              > -------_->
              >
              > To unsubscribe from this group, send an email to:
              > soaplite-unsubscribe@yahoogroups.com
              >
              >
              >
            • Michael Percy
              Paul, I got rid of my SIG{INT} handler because it was messy :-), but I don t think it is needed. The IO::Socket::INET class specifies a parameter called
              Message 6 of 6 , Feb 14 4:26 PM
              • 0 Attachment
                Paul,
                I got rid of my SIG{INT} handler because it was messy :-), but I don't think
                it is needed. The IO::Socket::INET class specifies a parameter called
                "Reuse", which allows for the reuse of a still-open (?) socket. I don't
                totally understand it however it seems like the best way to do thinks if you
                want your port to always be available after a Ctrl-C.

                Also, I have added a SIG{PIPE} handler which seems to work great where it is
                in the code. I hope you find this useful. Code follows:

                --
                #!/usr/local/bin/perl -w
                #########################################################################
                package main;
                use strict;

                my $PORT = 12039;
                my $daemon = My::Daemon
                -> new ( LocalPort => $PORT,
                Reuse => 1) #
                <-------------
                -> dispatch_to('TestClass');

                print "Access me at: ", $daemon->url(), "\n";
                $daemon->handle();

                # ====================================================

                BEGIN {
                package My::Daemon;
                use strict;

                use SOAP::Transport::HTTP;
                use vars qw(@ISA);
                @ISA = ('SOAP::Transport::HTTP::Daemon');

                sub handle {
                my $self = shift->new;
                CONN: while (my $c = $self->accept) {
                local $SIG{PIPE} = sub { warn "SIGPIPE: $!";
                $c->close; return 0; }; # <-----------
                while (my $r = $c->get_request) {
                $self->request($r);

                $self->SOAP::Transport::HTTP::Server::handle;
                $c->send_response($self->response);
                }
                $c->close;
                undef $c;
                }
                }
                }
                --

                Regards,
                Michael Percy

                > -----Original Message-----
                > From: Paul Kulchenko [mailto:paulclinger@...]
                > Sent: Tuesday, February 13, 2001 2:05 PM
                > To: soaplite@yahoogroups.com
                > Subject: Re: [soaplite] Subclassing SOAP::Transport::HTTP::Daemon
                >
                >
                > Hi, Michael!
                >
                > Why not? There is no restrictions on subclassing or inheritance. Take
                > a look into examples/SOAP/Transport/HTTP/ForkingDaemon which is
                > inherited from SOAP::Transport::HTTP::Daemon.
                >
                > As for SIG{INT} I planned to add SIG{PIPE} and SIG{INT} handlers, but
                > don't do it yet, so if you could provide a code or example I'll
                > incorporate it into Transport::HTTP::Daemon implementation. Thank
                > you.
                >
                > Best wishes, Paul.
                >
                > --- Michael Percy <mpercy@...> wrote:
                > > Hello,
                > > I am trying to catch SIG{INT} and gracefully close the connection
                > > in the
                > > daemon implementation of the SOAP::Lite server. However, I cannot
                > > seem to
                > > subclass SOAP::Transport::HTTP::Daemon!
                > >
                > > I believe this problem stems from the fact that all of the
                > > SOAP::Transport::HTTP::* classes reside in one file:
                > > SOAP/Transport/HTTP.pm.
                > > I am perfectly able to "use SOAP::Transport::HTTP" and then
                > > instantiate a
                > > ::Daemon class or ::Server class but I cannot for the life of me
                > > inherit
                > > from one!
                > >
                > > When I put SOAP::Transport::HTTP::Daemon in my @ISA array, even if
                > > I am
                > > "use"ing SOAP::Transport::HTTP, when I try to create an object of
                > > my
                > > subclass I get the error: 'Can't locate object method "new" via
                > > package
                > > "MyDaemon"' (my subclass). It is really strange.
                > >
                > > Does the @ISA "classloader" mechanism work differently that the
                > > @INC
                > > classloader mechanism? What I mean is, am I doing something
                > > wrong/being
                > > stupid, is Perl having problems, or was what the author did an
                > > unsupported
                > > use of packages/classes?
                > >
                > > Is there a workaround? ( !!! :-)
                > >
                > > Hope I have been clear enough!
                > >
                > >
                > > Regards,
                > >
                > > Michael Percy
                > > Software Engineer, Portera Systems
                > >
                > > ------------------------ Yahoo! Groups Sponsor
                > >
                > > To unsubscribe from this group, send an email to:
                > > soaplite-unsubscribe@yahoogroups.com
                > >
                > >
                > >
                >
                >
                > __________________________________________________
                > Do You Yahoo!?
                > Get personalized email addresses from Yahoo! Mail - only $35
                > a year! http://personal.mail.yahoo.com/
                >
                > ------------------------ Yahoo! Groups Sponsor
                > ---------------------~-~>
                > eGroups is now Yahoo! Groups
                > Click here for more details
                > http://click.egroups.com/1/11231/1/_/_/_/982101923/
                > --------------------------------------------------------------
                > -------_->
                >
                > To unsubscribe from this group, send an email to:
                > soaplite-unsubscribe@yahoogroups.com
                >
                >
                >
              Your message has been successfully submitted and would be delivered to recipients shortly.