You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Balaji Ravi <ba...@gmail.com> on 2007/12/18 15:32:20 UTC

Abstraction on getting headers of different transports

Hi,

I need to populate a custom header regardless of the underlying transport.
How do i do it without having to cater of every transport?

I don't see anything in the message/exchange which will hold on to all the
headers. AFAIK, I would need to get headers specific to the transport &
populate them.

Is this correct? If so, are there any plans to support this case?

Thanks

Balaji

Re: Abstraction on getting headers of different transports

Posted by Daniel Kulp <dk...@apache.org>.
On Tuesday 18 December 2007, Tully, Gary wrote:
> The Header Object would deal with soap headers, right?

Well, if other bindings have a way to map them into something, they could 
do so.  SOAP is definitely the main one.


> Would a transport agnostic approach to dealing with
> javax.xml.ws.handler.MessageContext.HTTP_REQUEST_HEADERS work?
> So over JMS, the contents of a user provided HTTP_REQUEST_HEADERS
> would be mapped to a message property using some simple convention. In
> other words, any transport that *can* would consume and propagate
> HTTP_REQUEST_HEADERS/HTTP_RSPONSE_HEADERS.
>
> The implementation could be bases on the CXF MessageContext so that
> the simple front end could work also. That is, it need not just be the
> jaxws property that is recognised.


Ah.  Yes.   I misread Balaji's question.   He was asking about transport 
headers, not binding level header.   In that case, yes the 
MessageContext.HTTP_REQUEST_HEADERS should be used.  

Technically, the transport should use Message.PROTOCOL_HEADERS on the 
message for whatever direction that message is going.   The 
HTTP_REQUEST_HEADERS thing is a JAX-WS thing that we map onto the 
PROTOCOL_HEADERS.

Dan



>
> Thanks,
> Gary.
>
> > -----Original Message-----
> > From: Daniel Kulp [mailto:dkulp@apache.org]
> > Sent: 18 December 2007 15:14
> > To: cxf-dev@incubator.apache.org
> > Cc: Balaji Ravi
> > Subject: Re: Abstraction on getting headers of different transports
> >
> >
> > Balaji,
> >
> > There is the Header object (org.apache.cxf.headers package in
> > API) that
> > was added to start going down that route.   It's currently
> > just used for
> > out of band headers, but ideally, the header in/out
> > interceptors would work with those (copy/move the objects
> > to/from the parameter list to the header list) and the SOAP
> > binding would just need to deal with the
> > header list.   That second part hasn't really been started yet
> > though.
> >
> > Dan
> >
> > On Tuesday 18 December 2007, Balaji Ravi wrote:
> > > Hi,
> > >
> > > I need to populate a custom header regardless of the underlying
> > > transport. How do i do it without having to cater of every
> >
> > transport?
> >
> > > I don't see anything in the message/exchange which will
> >
> > hold on to all
> >
> > > the headers. AFAIK, I would need to get headers specific to the
> > > transport & populate them.
> > >
> > > Is this correct? If so, are there any plans to support this case?
> > >
> > > Thanks
> > >
> > > Balaji
> >
> > --
> > J. Daniel Kulp
> > Principal Engineer, IONA
> > dkulp@apache.org
> > http://www.dankulp.com/blog
>
> ----------------------------
> IONA Technologies PLC (registered in Ireland)
> Registered Number: 171387
> Registered Address: The IONA Building, Shelbourne Road, Dublin 4,
> Ireland



-- 
J. Daniel Kulp
Principal Engineer, IONA
dkulp@apache.org
http://www.dankulp.com/blog

RE: Abstraction on getting headers of different transports

Posted by "Tully, Gary" <Ga...@iona.com>.
Hi Dan,
The Header Object would deal with soap headers, right?

Would a transport agnostic approach to dealing with
javax.xml.ws.handler.MessageContext.HTTP_REQUEST_HEADERS work?
So over JMS, the contents of a user provided HTTP_REQUEST_HEADERS would
be mapped to a message property using some simple convention. In other
words, any transport that *can* would consume and propagate
HTTP_REQUEST_HEADERS/HTTP_RSPONSE_HEADERS.

The implementation could be bases on the CXF MessageContext so that the
simple front end could work also. That is, it need not just be the jaxws
property that is recognised. 

Thanks,
Gary.

> -----Original Message-----
> From: Daniel Kulp [mailto:dkulp@apache.org] 
> Sent: 18 December 2007 15:14
> To: cxf-dev@incubator.apache.org
> Cc: Balaji Ravi
> Subject: Re: Abstraction on getting headers of different transports
> 
> 
> Balaji,
> 
> There is the Header object (org.apache.cxf.headers package in 
> API) that 
> was added to start going down that route.   It's currently 
> just used for 
> out of band headers, but ideally, the header in/out 
> interceptors would work with those (copy/move the objects 
> to/from the parameter list to the header list) and the SOAP 
> binding would just need to deal with the 
> header list.   That second part hasn't really been started yet though.
> 
> Dan
> 
> 
> On Tuesday 18 December 2007, Balaji Ravi wrote:
> > Hi,
> >
> > I need to populate a custom header regardless of the underlying 
> > transport. How do i do it without having to cater of every 
> transport?
> >
> > I don't see anything in the message/exchange which will 
> hold on to all 
> > the headers. AFAIK, I would need to get headers specific to the 
> > transport & populate them.
> >
> > Is this correct? If so, are there any plans to support this case?
> >
> > Thanks
> >
> > Balaji
> 
> 
> 
> --
> J. Daniel Kulp
> Principal Engineer, IONA
> dkulp@apache.org
> http://www.dankulp.com/blog
> 

----------------------------
IONA Technologies PLC (registered in Ireland)
Registered Number: 171387
Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland

Re: Abstraction on getting headers of different transports

Posted by Daniel Kulp <dk...@apache.org>.
Balaji,

There is the Header object (org.apache.cxf.headers package in API) that 
was added to start going down that route.   It's currently just used for 
out of band headers, but ideally, the header in/out interceptors would 
work with those (copy/move the objects to/from the parameter list to the 
header list) and the SOAP binding would just need to deal with the 
header list.   That second part hasn't really been started yet though.

Dan


On Tuesday 18 December 2007, Balaji Ravi wrote:
> Hi,
>
> I need to populate a custom header regardless of the underlying
> transport. How do i do it without having to cater of every transport?
>
> I don't see anything in the message/exchange which will hold on to all
> the headers. AFAIK, I would need to get headers specific to the
> transport & populate them.
>
> Is this correct? If so, are there any plans to support this case?
>
> Thanks
>
> Balaji



-- 
J. Daniel Kulp
Principal Engineer, IONA
dkulp@apache.org
http://www.dankulp.com/blog