Hi all;

Srinath I will do that changes and I was also +1 for doing so finally I understood the requirement operation specific receivers.

Deepal


+1 to moving Messagereiver to Operation level

-----Original Message-----
From: Srinath Perera [mailto:[EMAIL PROTECTED]
Sent: Tuesday, April 26, 2005 10:01 AM
To: [email protected]
Subject: Re: [Axis2] Deploying MessageReceivers per Operation

Yes in theory AFAIK MessageReceiver per Operation (MEP) make sense. Itmake
writing a Web Service bit complex. But as users are reusing the in built
MessageReceiver I think that is ok. So Deepal shall we movethe
messageReceiver attribute to the Opeartion level rather than atthe service
level?
ThanksSrinath
On 4/26/05, Jaliya Ekanayake <[EMAIL PROTECTED]> wrote:> Chathura
Herath wrote:> > >Hi Jaliya, Deepal, all> >> >Its exactly my point, the
MessgeReceiver is per MEP not per operation as the heading of this thread
implies(nor its per service). MEP is a real pain and there is an
unprecedented need for properly handling it.> >> >You are right about
there is a need of a MessageReciever per given MEP and the fact that given
service can have operations with different MEP can be resolved making sure
we select the right receiver in the Dispatch phase. Anyway we are doing it
now but apparently we have only the IN_OUT MEP Receiver and infact we are
in the process of writing a general framework for MEPs. I.e. Proper
figuring out of MEP aware receives and MEP aware MEPContexts.> >So we are
converging I think....> >> >Btw any thought of my use case stated in the
earlier mail. Restating.. If both the ping operation and the echo
operation requires to use the same transport (e.g. HTTP would be a likely)
due to some external constraint like RM, we ll have to get the engine to
reuse same transport for two or more different MEP.> >> >Is this a valid
use case??> >> >Comments??> >> >Thanks,> >Chathura> >>
>________________________________________> >From: Jaliya Ekanayake
[mailto:[EMAIL PROTECTED]> >Sent: Thursday, April 21, 2005 5:22 PM>
>To: [email protected]> >Subject: RE: [Axis2] Deploying
MessageReceivers per Operation> >> >Hi Chathura, Deepal and All,> >> >I
would like to pay your attention to the following class.> >> >public class
MyService {> > public void ping(String pingStr){> > //Ping
implementation> > }> >> > public String echo(String echoStr){> >
//Echo String implementatino> > return echoStr;> > }> >}> >>
>Now if we need to deploy this as a web service containing two operations
(one with IN-ONLY MEP and the other with IN-OUT MEP) we are in trouble if
we just allow the user to mention one message receiver per service.> >>
>Further, I am referring to the following lines( in the Axis 1.2
JavaProvider)> >> >--------------------------------> >> >if (operation !=
null && operation.getMep() == OperationType.ONE_WAY) {> >
msgContext.setResponseMessage(null);> > } else {> >
Message resMsg = msgContext.getResponseMessage();> >> >-----------
--------------------> >> >Now in our MessageReceiver we don't need to
check the operation type, since we have some special MEP aware
MessageReceivers. Only problem is that we may have many operations in one
service with different MEPs> >> >Comments?> >> >Thanks,> >> >Jaliya> >> >>
>________________________________________> >From: Chathura Herath
[mailto:[EMAIL PROTECTED]> >Sent: Thursday, April 21, 2005 2:48 PM>
>To: [email protected]> >Subject: RE: [Axis2] Deploying
MessageReceivers per Operation> >> >Hi Jaliya, Deepal, all> >> >I think we
haven't looked at the problem in the correct angle. MEP and Operation have
a one to many relation ship so it will not be right to say we let each
operation have its own message receiver, neither it is correct to say we
should have a message receivers per service because the MEP is defined per
operation.> >> >Many Operation â useâ One MEP> >> >The problem that jaliya
has pointed out is very valid and believe we need to give proper
attention. But we have missed out one salient point here. The original MEP
was an IN_ONLY MEP but since the operation requires secure conversation
the security module need to send out a message and get a message back.>
>The point in that in this case the security module has created a new
MEP(OUT_IN if you consider this EPR to be a server or it's the client side
of the IN_OUT MEP ) which is orthogonal to the original MEP IN_ONLY.
Further more now the endpoint has two parallel MEP's running> >1) Original
IN_ONLY MEP :- This will have a receiver â a InOnlyReceiver> >2) OUT_IN
MEP created by the security module :- This will have its own receiver.
(Like a normal client)> >> >Now I believe there are no misunderstanding of
having MessageReceivers because above two message receivers will be
provided and this operation and the security module can use them. And any
other service who has IN_ONLY MEP can use the above message receiver. Am I
right?> >> >Complications come when you want to use the same transport to
get everything done. That we have to figure out a way to get the engine to
reuse our old same transport.> >> >Comments?> >> >Cheers> >Chathura> >> >>
>________________________________________> >From: Deepal Jayasinghe
[mailto:[EMAIL PROTECTED]> >Sent: Thursday, April 21, 2005 10:30 AM>
>To: [email protected]> >Subject: Re: [Axis2] Deploying
MessageReceivers per Operation> >> >Hi Jaliya;> >> >I think we can handle
operation basic receivers inside Message receiver , that is because when
some one implement a service he has to write a MessageReciver for his
service , so inside the messagereciver he can write all the logic he
needs to handle operation basis reciever , that is inside
messagereciver.recive() he can implement those logic.> >> >as an example>
>> >MyReciver extends MessageReciver {> >> > public void
recieve(MessageContext context){> > MyOperationReciever myop = new
MyOperationReciever();> > myop.recieve(context);> > }> >}> >> >> >so
if we do that in this way I think we do not need to define per operation
basis receivers.> >> >Comments ....> >> >Deepal> >> >Hi All,> >>
>According the current implementation of Axis2, when we deploy a service,
we can specify one MessageReceiver (InOnlyMessageReceiver,
InOutMessageReceiver etc..) per service. According to my understanding we
should let the user to register one MessageReceiver per operation basis.
Possible example would be as follows.> >> >We have a web service with IN-
ONLY operation. However we need to let the service to implement the
RequestSecurityToken operation according to the WS-SecCon. This operation
is an IN-OUT operation. In this situation we have to register two message
receivers to these two operations. In addition, the MEP is bind to an
operation and the MessageReceiver is the one who is driving the MEP. So I
think we have let each operation to have its own message receiver.> >>
>thoughts ??> >> >Thanks,> >> >Jaliya> >> >> >> >> >> >> >> Hi Chathura,>
> IMHO, there may not be a use case similar to what you have mentioned.>
There may be a case for one MEP to use the same transport or different>
transports, but not between MEPs> > Thanks,> > Jaliya>










Reply via email to