You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "Robert Simmons Jr." <ro...@jambit.com> on 2004/11/17 15:03:25 UTC

Adding a Transport to Axis Clients? Is it possible?

Greetings. My client has developed a TCP implementation that has some 
special technology that I really cant talk amuch about. Thew would like 
to demonstrate the viability of this product by creating some 
implementations of applications on top of the new TCP implementation. I 
have a new socket library and I would like to use Axis to demonstrate this.

Is it possible to write a client side transport without delving all the 
way into the axis source base? If so could someone please point me in 
the right direction to start off.

Thanks in advance.

-- Robert

**************************************************************
Robert Simmons Jr.
Senior Software Architect
Author: Hardcore Java : 
http://www.oreilly.com/catalog/hardcorejv/index.html

Sendlingerstrasse 24
D-80331 Munich, Germany
Mobile: 162 387 4710


Re: Adding a Transport to Axis Clients? Is it possible?

Posted by Samisa Abeysinghe <sa...@yahoo.com>.
With Axis C++, you have to inherit Channel class and use the HTTP stuff as it is.

Samisa...

--- "Robert Simmons Jr." <ro...@jambit.com> wrote:

> Another question if you dont mind. I need to use HTTP over this new TCP 
> stack that my client has. Is it possible to inherit just the HTTP 
> Transport and then modify that one to use my special sockets?
> 
> -- Robert
> 
> Samisa Abeysinghe wrote:
> > Hi Robert,
> >    Yes you can write your own transport. What you have to do is to implement the interface
> defined
> > in SOAPTransport.h header in src/trasport folder of the source and create a new shared
> transport
> > lib (a .so on Linux or .dll on Windows). Once you have the new trasport lib, you can make the
> > client use it by setting the Transport_http setting in axiscpp.conf file.
> > 
> >    You can refer to the implementation of this SOAPTransport abstract class in
> src/transport/axis2
> > folder. In essense the design is simple. You need only three classes, Axis2Transport, Channel
> and 
> > Url. In OO terms:
> > 1. Axis2Trasport implements SOAPTransport (inheritance).
> > 2. Axis2Transport contains Channel
> > 3. Channel contains URL
> > 
> > If I explain bit more semantics:
> > 1. Axis2Trasport class basically handles HTTP protocol specific stuff.
> > 2. Channel class deals with TCP/IP sockets
> > 3. And Url helps handle URLs
> > 
> > What you can do is to implement your's similar to this. Howver we have much complex HTTP
> specific
> > stuff already handled in Axis2Transport class. Sounds like your concern is only to use the new
> > socket lib, in whhich case you can use the Axis2Transport as it is and only extend the Channel
> > class. There is yet another example of how to do that in the latest CVS code. Have a look at
> the
> > src/transport/axis2/ipv6 folder. Here what I have done is only to extend the Channel class and
> use
> > other classes as they are. 
> > 
> > HTH.
> > 
> > Regards,
> > Samisa...
> > 
> > --- "Robert Simmons Jr." <ro...@jambit.com> wrote:
> > 
> > 
> >>Greetings. My client has developed a TCP implementation that has some 
> >>special technology that I really cant talk amuch about. Thew would like 
> >>to demonstrate the viability of this product by creating some 
> >>implementations of applications on top of the new TCP implementation. I 
> >>have a new socket library and I would like to use Axis to demonstrate this.
> >>
> >>Is it possible to write a client side transport without delving all the 
> >>way into the axis source base? If so could someone please point me in 
> >>the right direction to start off.
> >>
> >>Thanks in advance.
> >>
> >>-- Robert
> >>
> >>**************************************************************
> >>Robert Simmons Jr.
> >>Senior Software Architect
> >>Author: Hardcore Java : 
> >>http://www.oreilly.com/catalog/hardcorejv/index.html
> >>
> >>Sendlingerstrasse 24
> >>D-80331 Munich, Germany
> >>Mobile: 162 387 4710
> >>
> >>
> > 
> > 
> > 
> > 
> > 		
> > __________________________________ 
> > Do you Yahoo!? 
> > The all-new My Yahoo! - Get yours free! 
> > http://my.yahoo.com 
> >  
> > 
> > 
> 
> 
> -- 
> 
> 
> **************************************************************
> Robert Simmons Jr.
> Senior Software Architect
> Author: Hardcore Java : 
> http://www.oreilly.com/catalog/hardcorejv/index.html
> 
> Sendlingerstrasse 24
> D-80331 Munich, Germany
> Mobile: 162 387 4710
> 
> 



		
__________________________________ 
Do you Yahoo!? 
Meet the all-new My Yahoo! - Try it today! 
http://my.yahoo.com 
 


Re: Adding a Transport to Axis Clients? Is it possible?

Posted by "Robert Simmons Jr." <ro...@jambit.com>.
Another question if you dont mind. I need to use HTTP over this new TCP 
stack that my client has. Is it possible to inherit just the HTTP 
Transport and then modify that one to use my special sockets?

-- Robert

Samisa Abeysinghe wrote:
> Hi Robert,
>    Yes you can write your own transport. What you have to do is to implement the interface defined
> in SOAPTransport.h header in src/trasport folder of the source and create a new shared transport
> lib (a .so on Linux or .dll on Windows). Once you have the new trasport lib, you can make the
> client use it by setting the Transport_http setting in axiscpp.conf file.
> 
>    You can refer to the implementation of this SOAPTransport abstract class in src/transport/axis2
> folder. In essense the design is simple. You need only three classes, Axis2Transport, Channel and 
> Url. In OO terms:
> 1. Axis2Trasport implements SOAPTransport (inheritance).
> 2. Axis2Transport contains Channel
> 3. Channel contains URL
> 
> If I explain bit more semantics:
> 1. Axis2Trasport class basically handles HTTP protocol specific stuff.
> 2. Channel class deals with TCP/IP sockets
> 3. And Url helps handle URLs
> 
> What you can do is to implement your's similar to this. Howver we have much complex HTTP specific
> stuff already handled in Axis2Transport class. Sounds like your concern is only to use the new
> socket lib, in whhich case you can use the Axis2Transport as it is and only extend the Channel
> class. There is yet another example of how to do that in the latest CVS code. Have a look at the
> src/transport/axis2/ipv6 folder. Here what I have done is only to extend the Channel class and use
> other classes as they are. 
> 
> HTH.
> 
> Regards,
> Samisa...
> 
> --- "Robert Simmons Jr." <ro...@jambit.com> wrote:
> 
> 
>>Greetings. My client has developed a TCP implementation that has some 
>>special technology that I really cant talk amuch about. Thew would like 
>>to demonstrate the viability of this product by creating some 
>>implementations of applications on top of the new TCP implementation. I 
>>have a new socket library and I would like to use Axis to demonstrate this.
>>
>>Is it possible to write a client side transport without delving all the 
>>way into the axis source base? If so could someone please point me in 
>>the right direction to start off.
>>
>>Thanks in advance.
>>
>>-- Robert
>>
>>**************************************************************
>>Robert Simmons Jr.
>>Senior Software Architect
>>Author: Hardcore Java : 
>>http://www.oreilly.com/catalog/hardcorejv/index.html
>>
>>Sendlingerstrasse 24
>>D-80331 Munich, Germany
>>Mobile: 162 387 4710
>>
>>
> 
> 
> 
> 
> 		
> __________________________________ 
> Do you Yahoo!? 
> The all-new My Yahoo! - Get yours free! 
> http://my.yahoo.com 
>  
> 
> 


-- 


**************************************************************
Robert Simmons Jr.
Senior Software Architect
Author: Hardcore Java : 
http://www.oreilly.com/catalog/hardcorejv/index.html

Sendlingerstrasse 24
D-80331 Munich, Germany
Mobile: 162 387 4710


Re: Adding a Transport to Axis Clients? Is it possible?

Posted by Samisa Abeysinghe <sa...@yahoo.com>.
If you want to use Axis Java client, I am not sure.
Better ask axis-dev@ws.apache.org

Samisa...

--- "Robert Simmons Jr." <ro...@jambit.com> wrote:

> Is the situation analagous using the Java verison of Axis? Im sorry I 
> didnt express earlier that I was using java.
> 
> -- Robert
> 
> Samisa Abeysinghe wrote:
> > Hi Robert,
> >    Yes you can write your own transport. What you have to do is to implement the interface
> defined
> > in SOAPTransport.h header in src/trasport folder of the source and create a new shared
> transport
> > lib (a .so on Linux or .dll on Windows). Once you have the new trasport lib, you can make the
> > client use it by setting the Transport_http setting in axiscpp.conf file.
> > 
> >    You can refer to the implementation of this SOAPTransport abstract class in
> src/transport/axis2
> > folder. In essense the design is simple. You need only three classes, Axis2Transport, Channel
> and 
> > Url. In OO terms:
> > 1. Axis2Trasport implements SOAPTransport (inheritance).
> > 2. Axis2Transport contains Channel
> > 3. Channel contains URL
> > 
> > If I explain bit more semantics:
> > 1. Axis2Trasport class basically handles HTTP protocol specific stuff.
> > 2. Channel class deals with TCP/IP sockets
> > 3. And Url helps handle URLs
> > 
> > What you can do is to implement your's similar to this. Howver we have much complex HTTP
> specific
> > stuff already handled in Axis2Transport class. Sounds like your concern is only to use the new
> > socket lib, in whhich case you can use the Axis2Transport as it is and only extend the Channel
> > class. There is yet another example of how to do that in the latest CVS code. Have a look at
> the
> > src/transport/axis2/ipv6 folder. Here what I have done is only to extend the Channel class and
> use
> > other classes as they are. 
> > 
> > HTH.
> > 
> > Regards,
> > Samisa...
> > 
> > --- "Robert Simmons Jr." <ro...@jambit.com> wrote:
> > 
> > 
> >>Greetings. My client has developed a TCP implementation that has some 
> >>special technology that I really cant talk amuch about. Thew would like 
> >>to demonstrate the viability of this product by creating some 
> >>implementations of applications on top of the new TCP implementation. I 
> >>have a new socket library and I would like to use Axis to demonstrate this.
> >>
> >>Is it possible to write a client side transport without delving all the 
> >>way into the axis source base? If so could someone please point me in 
> >>the right direction to start off.
> >>
> >>Thanks in advance.
> >>
> >>-- Robert
> >>
> >>**************************************************************
> >>Robert Simmons Jr.
> >>Senior Software Architect
> >>Author: Hardcore Java : 
> >>http://www.oreilly.com/catalog/hardcorejv/index.html
> >>
> >>Sendlingerstrasse 24
> >>D-80331 Munich, Germany
> >>Mobile: 162 387 4710
> >>
> >>
> > 
> > 
> > 
> > 
> > 		
> > __________________________________ 
> > Do you Yahoo!? 
> > The all-new My Yahoo! - Get yours free! 
> > http://my.yahoo.com 
> >  
> > 
> > 
> 
> 
> -- 
> 
> 
> **************************************************************
> Robert Simmons Jr.
> Senior Software Architect
> Author: Hardcore Java : 
> http://www.oreilly.com/catalog/hardcorejv/index.html
> 
> Sendlingerstrasse 24
> D-80331 Munich, Germany
> Mobile: 162 387 4710
> 
> 



		
__________________________________ 
Do you Yahoo!? 
The all-new My Yahoo! - Get yours free! 
http://my.yahoo.com 
 


Re: Adding a Transport to Axis Clients? Is it possible?

Posted by "Robert Simmons Jr." <ro...@jambit.com>.
Is the situation analagous using the Java verison of Axis? Im sorry I 
didnt express earlier that I was using java.

-- Robert

Samisa Abeysinghe wrote:
> Hi Robert,
>    Yes you can write your own transport. What you have to do is to implement the interface defined
> in SOAPTransport.h header in src/trasport folder of the source and create a new shared transport
> lib (a .so on Linux or .dll on Windows). Once you have the new trasport lib, you can make the
> client use it by setting the Transport_http setting in axiscpp.conf file.
> 
>    You can refer to the implementation of this SOAPTransport abstract class in src/transport/axis2
> folder. In essense the design is simple. You need only three classes, Axis2Transport, Channel and 
> Url. In OO terms:
> 1. Axis2Trasport implements SOAPTransport (inheritance).
> 2. Axis2Transport contains Channel
> 3. Channel contains URL
> 
> If I explain bit more semantics:
> 1. Axis2Trasport class basically handles HTTP protocol specific stuff.
> 2. Channel class deals with TCP/IP sockets
> 3. And Url helps handle URLs
> 
> What you can do is to implement your's similar to this. Howver we have much complex HTTP specific
> stuff already handled in Axis2Transport class. Sounds like your concern is only to use the new
> socket lib, in whhich case you can use the Axis2Transport as it is and only extend the Channel
> class. There is yet another example of how to do that in the latest CVS code. Have a look at the
> src/transport/axis2/ipv6 folder. Here what I have done is only to extend the Channel class and use
> other classes as they are. 
> 
> HTH.
> 
> Regards,
> Samisa...
> 
> --- "Robert Simmons Jr." <ro...@jambit.com> wrote:
> 
> 
>>Greetings. My client has developed a TCP implementation that has some 
>>special technology that I really cant talk amuch about. Thew would like 
>>to demonstrate the viability of this product by creating some 
>>implementations of applications on top of the new TCP implementation. I 
>>have a new socket library and I would like to use Axis to demonstrate this.
>>
>>Is it possible to write a client side transport without delving all the 
>>way into the axis source base? If so could someone please point me in 
>>the right direction to start off.
>>
>>Thanks in advance.
>>
>>-- Robert
>>
>>**************************************************************
>>Robert Simmons Jr.
>>Senior Software Architect
>>Author: Hardcore Java : 
>>http://www.oreilly.com/catalog/hardcorejv/index.html
>>
>>Sendlingerstrasse 24
>>D-80331 Munich, Germany
>>Mobile: 162 387 4710
>>
>>
> 
> 
> 
> 
> 		
> __________________________________ 
> Do you Yahoo!? 
> The all-new My Yahoo! - Get yours free! 
> http://my.yahoo.com 
>  
> 
> 


-- 


**************************************************************
Robert Simmons Jr.
Senior Software Architect
Author: Hardcore Java : 
http://www.oreilly.com/catalog/hardcorejv/index.html

Sendlingerstrasse 24
D-80331 Munich, Germany
Mobile: 162 387 4710


Re: Adding a Transport to Axis Clients? Is it possible?

Posted by Samisa Abeysinghe <sa...@yahoo.com>.
Re: > Can we look to see if the address is ipv6 and, if not, act accordingly 

I had a quick look at it and looks like we can do it on Linux. Thanks for the suggestion John. 

With IPV4 it works (Without hardcoding any IPV4 specific stuff). Need to test with IPV6 env, but I
guess it may work.

Samisa...



--- Samisa Abeysinghe <sa...@yahoo.com> wrote:

> > Can we look to see if the address is ipv6 and, if not, act accordingly 
> 
> This should be possible, but I am not sure. I will try this out. However, I am facing challenges
> with testing.  Hence need help with testing. (So far I have been looking into Linux
> implementation)
> 
> I am tryng to use the Windows toolkit. (For which I reqiure Win 2000 SP1 machine) I will look
> into
> the possibilities of checking against the address with that as well.
> 
> Thanks,
> Samisa...
> 
> --- John Hawkins <HA...@uk.ibm.com> wrote:
> 
> > 
> > 
> > 
> > 
> > Can we look to see if the address is ipv6 and, if not, act accordingly by
> > dropping back to the ipv4 API? This could be done using a class hierarchy
> > and overloading a "doConnection" method ?
> > 
> > 
> > 
> > 
> > John Hawkins
> > 
> > 
> > 
> > 
> >                                                                            
> >              Samisa Abeysinghe                                             
> >              <samisa_abeysingh                                             
> >              e@yahoo.com>                                               To 
> >                                        Apache AXIS C Developers List       
> >              18/11/2004 09:45          <ax...@ws.apache.org>          
> >                                                                         cc 
> >                                                                            
> >              Please respond to                                     Subject 
> >               "Apache AXIS C           Re: Adding a Transport to Axis      
> >              Developers List"          Clients? Is it possible?            
> >                                                                            
> >                                                                            
> >                                                                            
> >                                                                            
> >                                                                            
> >                                                                            
> > 
> > 
> > 
> > 
> > Hi John,
> >    Yes, in my initial implementation, I have written a seperate channel for
> > IPV6. This means we
> > would have to change the axiscpp.conf's Transport_http setting whenever we
> > want to switch using
> > IPV6 vs. non-IPV6 transports.
> > 
> >    Fred had few ideas on making SSL Channel to be loaded as a seperate DLL.
> > If that is
> > implemented, IPV6 channel could be loaded similarly. However we have not
> > dig deep into that.
> > 
> >    I do understand that it is very tedious to change axiscpp.conf time to
> > time, especially given
> > that its location is picked in relation to AXISCPP_DEPLOY env variable. So
> > we cannot use two
> > different conf files at the same time with two clients. A DLL based
> > solution to load different
> > channels would solve this problem (However I am not sure how exactly to do
> > that) As an
> > alternative, we can make locating aciscpp.conf independet of AXISCPP_DEPLOY
> > env. var, so that we
> > could use 2 or more different conf files with clients in parallel. I am not
> > sure about the effort
> > requred to do this. But if it is an acceptable solution, I could look into
> > that.
> > 
> > Thanks,
> > Samisa...
> > 
> > --- John Hawkins <HA...@uk.ibm.com> wrote:
> > 
> > >
> > >
> > >
> > >
> > > Hi Samisa,
> > >
> > >
> > > re the ipv6 stuff. Are you writing a new channel class or just changing
> > the
> > > one we have? When you have finished are we going to have two channels one
> > > which is ipv6 enabled and one that isn't ?
> > >
> > > John Hawkins
> > >
> > >
> > >
> > >
> > >
> > 
> > >              Samisa Abeysinghe
> > 
> > >              <samisa_abeysingh
> > 
> > >              e@yahoo.com>
> > To
> > >                                        Apache AXIS C Developers List
> > 
> > >              18/11/2004 06:13          <ax...@ws.apache.org>
> > 
> > >
> > cc
> > >
> > 
> > >              Please respond to
> > Subject
> > >               "Apache AXIS C           Re: Adding a Transport to Axis
> > 
> > >              Developers List"          Clients? Is it possible?
> > 
> > >
> > 
> > >
> > 
> > >
> > 
> > >
> > 
> > >
> > 
> > >
> > 
> > >
> > >
> > >
> > >
> > > Hi Robert,
> > >    Yes you can write your own transport. What you have to do is to
> > > implement the interface defined
> > > in SOAPTransport.h header in src/trasport folder of the source and create
> > a
> > > new shared transport
> > > lib (a .so on Linux or .dll on Windows). Once you have the new trasport
> > > lib, you can make the
> > > client use it by setting the Transport_http setting in axiscpp.conf file.
> > >
> > >    You can refer to the implementation of this SOAPTransport abstract
> > class
> > > in src/transport/axis2
> > > folder. In essense the design is simple. You need only three classes,
> > > Axis2Transport, Channel and
> > > Url. In OO terms:
> > > 1. Axis2Trasport implements SOAPTransport (inheritance).
> > > 2. Axis2Transport contains Channel
> > > 3. Channel contains URL
> > >
> > > If I explain bit more semantics:
> > > 1. Axis2Trasport class basically handles HTTP protocol specific stuff.
> > > 2. Channel class deals with TCP/IP sockets
> > > 3. And Url helps handle URLs
> > >
> > > What you can do is to implement your's similar to this. Howver we have
> > much
> > > complex HTTP specific
> > > stuff already handled in Axis2Transport class. Sounds like your concern
> > is
> > > only to use the new
> > > socket lib, in whhich case you can use the Axis2Transport as it is and
> > only
> > > extend the Channel
> > > class. There is yet another example of how to do that in the latest CVS
> > > code. Have a look at the
> > > src/transport/axis2/ipv6 folder. Here what I have done is only to extend
> > > the Channel class and use
> > > other classes as they are.
> > >
> > > HTH.
> > >
> > > Regards,
> > > Samisa...
> > >
> > > --- "Robert Simmons Jr." <ro...@jambit.com> wrote:
> > >
> > > > Greetings. My client has developed a TCP implementation that has some
> > > > special technology that I really cant talk amuch about. Thew would like
> > > > to demonstrate the viability of this product by creating some
> > > > implementations of applications on top of the new TCP implementation. I
> > > > have a new socket library and I would like to use Axis to demonstrate
> > > this.
> > > >
> > > > Is it possible to write a client side transport without delving all the
> > > > way into the axis source base? If so could someone please point me in
> > > > the right direction to start off.
> > > >
> > > > Thanks in advance.
> > > >
> > > > -- Robert
> > > >
> 
=== message truncated ===



		
__________________________________ 
Do you Yahoo!? 
Meet the all-new My Yahoo! - Try it today! 
http://my.yahoo.com 
 


Re: Adding a Transport to Axis Clients? Is it possible?

Posted by Samisa Abeysinghe <sa...@yahoo.com>.
> Can we look to see if the address is ipv6 and, if not, act accordingly 

This should be possible, but I am not sure. I will try this out. However, I am facing challenges
with testing.  Hence need help with testing. (So far I have been looking into Linux
implementation)

I am tryng to use the Windows toolkit. (For which I reqiure Win 2000 SP1 machine) I will look into
the possibilities of checking against the address with that as well.

Thanks,
Samisa...

--- John Hawkins <HA...@uk.ibm.com> wrote:

> 
> 
> 
> 
> Can we look to see if the address is ipv6 and, if not, act accordingly by
> dropping back to the ipv4 API? This could be done using a class hierarchy
> and overloading a "doConnection" method ?
> 
> 
> 
> 
> John Hawkins
> 
> 
> 
> 
>                                                                            
>              Samisa Abeysinghe                                             
>              <samisa_abeysingh                                             
>              e@yahoo.com>                                               To 
>                                        Apache AXIS C Developers List       
>              18/11/2004 09:45          <ax...@ws.apache.org>          
>                                                                         cc 
>                                                                            
>              Please respond to                                     Subject 
>               "Apache AXIS C           Re: Adding a Transport to Axis      
>              Developers List"          Clients? Is it possible?            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
> 
> 
> 
> 
> Hi John,
>    Yes, in my initial implementation, I have written a seperate channel for
> IPV6. This means we
> would have to change the axiscpp.conf's Transport_http setting whenever we
> want to switch using
> IPV6 vs. non-IPV6 transports.
> 
>    Fred had few ideas on making SSL Channel to be loaded as a seperate DLL.
> If that is
> implemented, IPV6 channel could be loaded similarly. However we have not
> dig deep into that.
> 
>    I do understand that it is very tedious to change axiscpp.conf time to
> time, especially given
> that its location is picked in relation to AXISCPP_DEPLOY env variable. So
> we cannot use two
> different conf files at the same time with two clients. A DLL based
> solution to load different
> channels would solve this problem (However I am not sure how exactly to do
> that) As an
> alternative, we can make locating aciscpp.conf independet of AXISCPP_DEPLOY
> env. var, so that we
> could use 2 or more different conf files with clients in parallel. I am not
> sure about the effort
> requred to do this. But if it is an acceptable solution, I could look into
> that.
> 
> Thanks,
> Samisa...
> 
> --- John Hawkins <HA...@uk.ibm.com> wrote:
> 
> >
> >
> >
> >
> > Hi Samisa,
> >
> >
> > re the ipv6 stuff. Are you writing a new channel class or just changing
> the
> > one we have? When you have finished are we going to have two channels one
> > which is ipv6 enabled and one that isn't ?
> >
> > John Hawkins
> >
> >
> >
> >
> >
> 
> >              Samisa Abeysinghe
> 
> >              <samisa_abeysingh
> 
> >              e@yahoo.com>
> To
> >                                        Apache AXIS C Developers List
> 
> >              18/11/2004 06:13          <ax...@ws.apache.org>
> 
> >
> cc
> >
> 
> >              Please respond to
> Subject
> >               "Apache AXIS C           Re: Adding a Transport to Axis
> 
> >              Developers List"          Clients? Is it possible?
> 
> >
> 
> >
> 
> >
> 
> >
> 
> >
> 
> >
> 
> >
> >
> >
> >
> > Hi Robert,
> >    Yes you can write your own transport. What you have to do is to
> > implement the interface defined
> > in SOAPTransport.h header in src/trasport folder of the source and create
> a
> > new shared transport
> > lib (a .so on Linux or .dll on Windows). Once you have the new trasport
> > lib, you can make the
> > client use it by setting the Transport_http setting in axiscpp.conf file.
> >
> >    You can refer to the implementation of this SOAPTransport abstract
> class
> > in src/transport/axis2
> > folder. In essense the design is simple. You need only three classes,
> > Axis2Transport, Channel and
> > Url. In OO terms:
> > 1. Axis2Trasport implements SOAPTransport (inheritance).
> > 2. Axis2Transport contains Channel
> > 3. Channel contains URL
> >
> > If I explain bit more semantics:
> > 1. Axis2Trasport class basically handles HTTP protocol specific stuff.
> > 2. Channel class deals with TCP/IP sockets
> > 3. And Url helps handle URLs
> >
> > What you can do is to implement your's similar to this. Howver we have
> much
> > complex HTTP specific
> > stuff already handled in Axis2Transport class. Sounds like your concern
> is
> > only to use the new
> > socket lib, in whhich case you can use the Axis2Transport as it is and
> only
> > extend the Channel
> > class. There is yet another example of how to do that in the latest CVS
> > code. Have a look at the
> > src/transport/axis2/ipv6 folder. Here what I have done is only to extend
> > the Channel class and use
> > other classes as they are.
> >
> > HTH.
> >
> > Regards,
> > Samisa...
> >
> > --- "Robert Simmons Jr." <ro...@jambit.com> wrote:
> >
> > > Greetings. My client has developed a TCP implementation that has some
> > > special technology that I really cant talk amuch about. Thew would like
> > > to demonstrate the viability of this product by creating some
> > > implementations of applications on top of the new TCP implementation. I
> > > have a new socket library and I would like to use Axis to demonstrate
> > this.
> > >
> > > Is it possible to write a client side transport without delving all the
> > > way into the axis source base? If so could someone please point me in
> > > the right direction to start off.
> > >
> > > Thanks in advance.
> > >
> > > -- Robert
> > >
> > > **************************************************************
> > > Robert Simmons Jr.
> > > Senior Software Architect
> > > Author: Hardcore Java :
> > > http://www.oreilly.com/catalog/hardcorejv/index.html
> > >
> > > Sendlingerstrasse 24
> > > D-80331 Munich, Germany
> > > Mobile: 162 387 4710
> > >
> > >
> >
> >
> >
> >
> 
=== message truncated ===



		
__________________________________ 
Do you Yahoo!? 
Meet the all-new My Yahoo! - Try it today! 
http://my.yahoo.com 
 


Re: Adding a Transport to Axis Clients? Is it possible?

Posted by John Hawkins <HA...@uk.ibm.com>.



Can we look to see if the address is ipv6 and, if not, act accordingly by
dropping back to the ipv4 API? This could be done using a class hierarchy
and overloading a "doConnection" method ?




John Hawkins




                                                                           
             Samisa Abeysinghe                                             
             <samisa_abeysingh                                             
             e@yahoo.com>                                               To 
                                       Apache AXIS C Developers List       
             18/11/2004 09:45          <ax...@ws.apache.org>          
                                                                        cc 
                                                                           
             Please respond to                                     Subject 
              "Apache AXIS C           Re: Adding a Transport to Axis      
             Developers List"          Clients? Is it possible?            
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




Hi John,
   Yes, in my initial implementation, I have written a seperate channel for
IPV6. This means we
would have to change the axiscpp.conf's Transport_http setting whenever we
want to switch using
IPV6 vs. non-IPV6 transports.

   Fred had few ideas on making SSL Channel to be loaded as a seperate DLL.
If that is
implemented, IPV6 channel could be loaded similarly. However we have not
dig deep into that.

   I do understand that it is very tedious to change axiscpp.conf time to
time, especially given
that its location is picked in relation to AXISCPP_DEPLOY env variable. So
we cannot use two
different conf files at the same time with two clients. A DLL based
solution to load different
channels would solve this problem (However I am not sure how exactly to do
that) As an
alternative, we can make locating aciscpp.conf independet of AXISCPP_DEPLOY
env. var, so that we
could use 2 or more different conf files with clients in parallel. I am not
sure about the effort
requred to do this. But if it is an acceptable solution, I could look into
that.

Thanks,
Samisa...

--- John Hawkins <HA...@uk.ibm.com> wrote:

>
>
>
>
> Hi Samisa,
>
>
> re the ipv6 stuff. Are you writing a new channel class or just changing
the
> one we have? When you have finished are we going to have two channels one
> which is ipv6 enabled and one that isn't ?
>
> John Hawkins
>
>
>
>
>

>              Samisa Abeysinghe

>              <samisa_abeysingh

>              e@yahoo.com>
To
>                                        Apache AXIS C Developers List

>              18/11/2004 06:13          <ax...@ws.apache.org>

>
cc
>

>              Please respond to
Subject
>               "Apache AXIS C           Re: Adding a Transport to Axis

>              Developers List"          Clients? Is it possible?

>

>

>

>

>

>

>
>
>
>
> Hi Robert,
>    Yes you can write your own transport. What you have to do is to
> implement the interface defined
> in SOAPTransport.h header in src/trasport folder of the source and create
a
> new shared transport
> lib (a .so on Linux or .dll on Windows). Once you have the new trasport
> lib, you can make the
> client use it by setting the Transport_http setting in axiscpp.conf file.
>
>    You can refer to the implementation of this SOAPTransport abstract
class
> in src/transport/axis2
> folder. In essense the design is simple. You need only three classes,
> Axis2Transport, Channel and
> Url. In OO terms:
> 1. Axis2Trasport implements SOAPTransport (inheritance).
> 2. Axis2Transport contains Channel
> 3. Channel contains URL
>
> If I explain bit more semantics:
> 1. Axis2Trasport class basically handles HTTP protocol specific stuff.
> 2. Channel class deals with TCP/IP sockets
> 3. And Url helps handle URLs
>
> What you can do is to implement your's similar to this. Howver we have
much
> complex HTTP specific
> stuff already handled in Axis2Transport class. Sounds like your concern
is
> only to use the new
> socket lib, in whhich case you can use the Axis2Transport as it is and
only
> extend the Channel
> class. There is yet another example of how to do that in the latest CVS
> code. Have a look at the
> src/transport/axis2/ipv6 folder. Here what I have done is only to extend
> the Channel class and use
> other classes as they are.
>
> HTH.
>
> Regards,
> Samisa...
>
> --- "Robert Simmons Jr." <ro...@jambit.com> wrote:
>
> > Greetings. My client has developed a TCP implementation that has some
> > special technology that I really cant talk amuch about. Thew would like
> > to demonstrate the viability of this product by creating some
> > implementations of applications on top of the new TCP implementation. I
> > have a new socket library and I would like to use Axis to demonstrate
> this.
> >
> > Is it possible to write a client side transport without delving all the
> > way into the axis source base? If so could someone please point me in
> > the right direction to start off.
> >
> > Thanks in advance.
> >
> > -- Robert
> >
> > **************************************************************
> > Robert Simmons Jr.
> > Senior Software Architect
> > Author: Hardcore Java :
> > http://www.oreilly.com/catalog/hardcorejv/index.html
> >
> > Sendlingerstrasse 24
> > D-80331 Munich, Germany
> > Mobile: 162 387 4710
> >
> >
>
>
>
>
> __________________________________
> Do you Yahoo!?
> The all-new My Yahoo! - Get yours free!
> http://my.yahoo.com
>
>
>
>
>




__________________________________
Do you Yahoo!?
Meet the all-new My Yahoo! - Try it today!
http://my.yahoo.com





Re: Adding a Transport to Axis Clients? Is it possible?

Posted by Samisa Abeysinghe <sa...@yahoo.com>.
Hi John,
   Yes, in my initial implementation, I have written a seperate channel for IPV6. This means we
would have to change the axiscpp.conf's Transport_http setting whenever we want to switch using
IPV6 vs. non-IPV6 transports.

   Fred had few ideas on making SSL Channel to be loaded as a seperate DLL. If that is
implemented, IPV6 channel could be loaded similarly. However we have not dig deep into that.

   I do understand that it is very tedious to change axiscpp.conf time to time, especially given
that its location is picked in relation to AXISCPP_DEPLOY env variable. So we cannot use two
different conf files at the same time with two clients. A DLL based solution to load different
channels would solve this problem (However I am not sure how exactly to do that) As an
alternative, we can make locating aciscpp.conf independet of AXISCPP_DEPLOY env. var, so that we
could use 2 or more different conf files with clients in parallel. I am not sure about the effort
requred to do this. But if it is an acceptable solution, I could look into that.

Thanks,
Samisa...

--- John Hawkins <HA...@uk.ibm.com> wrote:

> 
> 
> 
> 
> Hi Samisa,
> 
> 
> re the ipv6 stuff. Are you writing a new channel class or just changing the
> one we have? When you have finished are we going to have two channels one
> which is ipv6 enabled and one that isn't ?
> 
> John Hawkins
> 
> 
> 
> 
>                                                                            
>              Samisa Abeysinghe                                             
>              <samisa_abeysingh                                             
>              e@yahoo.com>                                               To 
>                                        Apache AXIS C Developers List       
>              18/11/2004 06:13          <ax...@ws.apache.org>          
>                                                                         cc 
>                                                                            
>              Please respond to                                     Subject 
>               "Apache AXIS C           Re: Adding a Transport to Axis      
>              Developers List"          Clients? Is it possible?            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
>                                                                            
> 
> 
> 
> 
> Hi Robert,
>    Yes you can write your own transport. What you have to do is to
> implement the interface defined
> in SOAPTransport.h header in src/trasport folder of the source and create a
> new shared transport
> lib (a .so on Linux or .dll on Windows). Once you have the new trasport
> lib, you can make the
> client use it by setting the Transport_http setting in axiscpp.conf file.
> 
>    You can refer to the implementation of this SOAPTransport abstract class
> in src/transport/axis2
> folder. In essense the design is simple. You need only three classes,
> Axis2Transport, Channel and
> Url. In OO terms:
> 1. Axis2Trasport implements SOAPTransport (inheritance).
> 2. Axis2Transport contains Channel
> 3. Channel contains URL
> 
> If I explain bit more semantics:
> 1. Axis2Trasport class basically handles HTTP protocol specific stuff.
> 2. Channel class deals with TCP/IP sockets
> 3. And Url helps handle URLs
> 
> What you can do is to implement your's similar to this. Howver we have much
> complex HTTP specific
> stuff already handled in Axis2Transport class. Sounds like your concern is
> only to use the new
> socket lib, in whhich case you can use the Axis2Transport as it is and only
> extend the Channel
> class. There is yet another example of how to do that in the latest CVS
> code. Have a look at the
> src/transport/axis2/ipv6 folder. Here what I have done is only to extend
> the Channel class and use
> other classes as they are.
> 
> HTH.
> 
> Regards,
> Samisa...
> 
> --- "Robert Simmons Jr." <ro...@jambit.com> wrote:
> 
> > Greetings. My client has developed a TCP implementation that has some
> > special technology that I really cant talk amuch about. Thew would like
> > to demonstrate the viability of this product by creating some
> > implementations of applications on top of the new TCP implementation. I
> > have a new socket library and I would like to use Axis to demonstrate
> this.
> >
> > Is it possible to write a client side transport without delving all the
> > way into the axis source base? If so could someone please point me in
> > the right direction to start off.
> >
> > Thanks in advance.
> >
> > -- Robert
> >
> > **************************************************************
> > Robert Simmons Jr.
> > Senior Software Architect
> > Author: Hardcore Java :
> > http://www.oreilly.com/catalog/hardcorejv/index.html
> >
> > Sendlingerstrasse 24
> > D-80331 Munich, Germany
> > Mobile: 162 387 4710
> >
> >
> 
> 
> 
> 
> __________________________________
> Do you Yahoo!?
> The all-new My Yahoo! - Get yours free!
> http://my.yahoo.com
> 
> 
> 
> 
> 



		
__________________________________ 
Do you Yahoo!? 
Meet the all-new My Yahoo! - Try it today! 
http://my.yahoo.com 
 


Re: Adding a Transport to Axis Clients? Is it possible?

Posted by John Hawkins <HA...@uk.ibm.com>.



Hi Samisa,


re the ipv6 stuff. Are you writing a new channel class or just changing the
one we have? When you have finished are we going to have two channels one
which is ipv6 enabled and one that isn't ?

John Hawkins




                                                                           
             Samisa Abeysinghe                                             
             <samisa_abeysingh                                             
             e@yahoo.com>                                               To 
                                       Apache AXIS C Developers List       
             18/11/2004 06:13          <ax...@ws.apache.org>          
                                                                        cc 
                                                                           
             Please respond to                                     Subject 
              "Apache AXIS C           Re: Adding a Transport to Axis      
             Developers List"          Clients? Is it possible?            
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




Hi Robert,
   Yes you can write your own transport. What you have to do is to
implement the interface defined
in SOAPTransport.h header in src/trasport folder of the source and create a
new shared transport
lib (a .so on Linux or .dll on Windows). Once you have the new trasport
lib, you can make the
client use it by setting the Transport_http setting in axiscpp.conf file.

   You can refer to the implementation of this SOAPTransport abstract class
in src/transport/axis2
folder. In essense the design is simple. You need only three classes,
Axis2Transport, Channel and
Url. In OO terms:
1. Axis2Trasport implements SOAPTransport (inheritance).
2. Axis2Transport contains Channel
3. Channel contains URL

If I explain bit more semantics:
1. Axis2Trasport class basically handles HTTP protocol specific stuff.
2. Channel class deals with TCP/IP sockets
3. And Url helps handle URLs

What you can do is to implement your's similar to this. Howver we have much
complex HTTP specific
stuff already handled in Axis2Transport class. Sounds like your concern is
only to use the new
socket lib, in whhich case you can use the Axis2Transport as it is and only
extend the Channel
class. There is yet another example of how to do that in the latest CVS
code. Have a look at the
src/transport/axis2/ipv6 folder. Here what I have done is only to extend
the Channel class and use
other classes as they are.

HTH.

Regards,
Samisa...

--- "Robert Simmons Jr." <ro...@jambit.com> wrote:

> Greetings. My client has developed a TCP implementation that has some
> special technology that I really cant talk amuch about. Thew would like
> to demonstrate the viability of this product by creating some
> implementations of applications on top of the new TCP implementation. I
> have a new socket library and I would like to use Axis to demonstrate
this.
>
> Is it possible to write a client side transport without delving all the
> way into the axis source base? If so could someone please point me in
> the right direction to start off.
>
> Thanks in advance.
>
> -- Robert
>
> **************************************************************
> Robert Simmons Jr.
> Senior Software Architect
> Author: Hardcore Java :
> http://www.oreilly.com/catalog/hardcorejv/index.html
>
> Sendlingerstrasse 24
> D-80331 Munich, Germany
> Mobile: 162 387 4710
>
>




__________________________________
Do you Yahoo!?
The all-new My Yahoo! - Get yours free!
http://my.yahoo.com





Re: Adding a Transport to Axis Clients? Is it possible?

Posted by Samisa Abeysinghe <sa...@yahoo.com>.
Hi Robert,
   Yes you can write your own transport. What you have to do is to implement the interface defined
in SOAPTransport.h header in src/trasport folder of the source and create a new shared transport
lib (a .so on Linux or .dll on Windows). Once you have the new trasport lib, you can make the
client use it by setting the Transport_http setting in axiscpp.conf file.

   You can refer to the implementation of this SOAPTransport abstract class in src/transport/axis2
folder. In essense the design is simple. You need only three classes, Axis2Transport, Channel and 
Url. In OO terms:
1. Axis2Trasport implements SOAPTransport (inheritance).
2. Axis2Transport contains Channel
3. Channel contains URL

If I explain bit more semantics:
1. Axis2Trasport class basically handles HTTP protocol specific stuff.
2. Channel class deals with TCP/IP sockets
3. And Url helps handle URLs

What you can do is to implement your's similar to this. Howver we have much complex HTTP specific
stuff already handled in Axis2Transport class. Sounds like your concern is only to use the new
socket lib, in whhich case you can use the Axis2Transport as it is and only extend the Channel
class. There is yet another example of how to do that in the latest CVS code. Have a look at the
src/transport/axis2/ipv6 folder. Here what I have done is only to extend the Channel class and use
other classes as they are. 

HTH.

Regards,
Samisa...

--- "Robert Simmons Jr." <ro...@jambit.com> wrote:

> Greetings. My client has developed a TCP implementation that has some 
> special technology that I really cant talk amuch about. Thew would like 
> to demonstrate the viability of this product by creating some 
> implementations of applications on top of the new TCP implementation. I 
> have a new socket library and I would like to use Axis to demonstrate this.
> 
> Is it possible to write a client side transport without delving all the 
> way into the axis source base? If so could someone please point me in 
> the right direction to start off.
> 
> Thanks in advance.
> 
> -- Robert
> 
> **************************************************************
> Robert Simmons Jr.
> Senior Software Architect
> Author: Hardcore Java : 
> http://www.oreilly.com/catalog/hardcorejv/index.html
> 
> Sendlingerstrasse 24
> D-80331 Munich, Germany
> Mobile: 162 387 4710
> 
> 



		
__________________________________ 
Do you Yahoo!? 
The all-new My Yahoo! - Get yours free! 
http://my.yahoo.com