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 John Hawkins <HA...@uk.ibm.com> on 2004/05/18 13:00:45 UTC
Transport layer?
Hi Folks,
I understand that there are a lot of transport and parser abstractions
going on at the moment.
Could someone please publish the API's so that we can all see them prior to
being coded.
On this mailing list there are discussions about individual methods and
improvements but there never seems to be an overall view. Does anyone have
any UML models they can share? If not then the API's would be a good first
step.
many thanks,
John.
RE: Latest CVS works with Xerces 2.2.0 and Apache 2.0
Posted by Samisa Abeysinghe <sa...@yahoo.com>.
Nop I did not test the empty tag case :(
Samisa...
--- Susantha Kumara <su...@opensource.lk> wrote:
> Could you check whether that empty tag problem is also solved ?. I don't
> have a test case to create soap with an empty tag.
>
> Thanks,
>
> Susantha.
>
> > -----Original Message-----
> > From: Samisa Abeysinghe [mailto:samisa_abeysinghe@yahoo.com]
> > Sent: Tuesday, May 25, 2004 12:30 PM
> > To: Apache AXIS C Developers List
> > Subject: Latest CVS works with Xerces 2.2.0 and Apache 2.0
> >
> > It works!
> >
> > Thanks Susantha.
> >
> > Samisa...
> >
> >
> >
> >
> >
> > __________________________________
> > Do you Yahoo!?
> > Friends. Fun. Try the all-new Yahoo! Messenger.
> > http://messenger.yahoo.com/
>
__________________________________
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/
RE: Latest CVS works with Xerces 2.2.0 and Apache 2.0
Posted by Susantha Kumara <su...@opensource.lk>.
Could you check whether that empty tag problem is also solved ?. I don't
have a test case to create soap with an empty tag.
Thanks,
Susantha.
> -----Original Message-----
> From: Samisa Abeysinghe [mailto:samisa_abeysinghe@yahoo.com]
> Sent: Tuesday, May 25, 2004 12:30 PM
> To: Apache AXIS C Developers List
> Subject: Latest CVS works with Xerces 2.2.0 and Apache 2.0
>
> It works!
>
> Thanks Susantha.
>
> Samisa...
>
>
>
>
>
> __________________________________
> Do you Yahoo!?
> Friends. Fun. Try the all-new Yahoo! Messenger.
> http://messenger.yahoo.com/
Latest CVS works with Xerces 2.2.0 and Apache 2.0
Posted by Samisa Abeysinghe <sa...@yahoo.com>.
It works!
Thanks Susantha.
Samisa...
__________________________________
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/
Re: Transport layer?
Posted by Samisa Abeysinghe <sa...@yahoo.com>.
Guys,
I have been trying to write a base class for generated stubs with an API to get/set transport
properties.
I found that AxisTransport::setTransportProperty(char*, char*) had an empty body. I filled in
the methods (and commited) However, this means that the transport abstraction API is in place, but
with no implemetation to test.
In current transport (used by client side) we have several layers:
Abstract class SOAPTransport implemented by AxisTrasport
Abstract class Transport implemented by HttpTransport
Sender and Receiver classes - used by AxisTransport to access Transport - these tow classess do
nothing but wrap the send and recev API
Then there is Channel class, which really does the TCP/IP sockt handling
q1. Why do we need 2 abstract classes (SOAPTransport and Transport)? Why not only
one?(SOAPTransport)
q2. What classes define the new abstract transport API? (SOAPTransport alone or both SOAPTransport
and Transport)
q3. Why do we need Sender and Receiver? I do not think they are need at all (eliminate them)
We can cut down the four layers:
AxisTransport --> Sender/Receiver --> HttpTransport --> Channel
to just 2:
HttpTransport --> Channel
on top of AxisTransport API.
Thanks,
Samisa...
--- rangika@opensource.lk wrote:
>
> Hi John,
>
> Sorry this mail was not replied to sooner.
>
> There is no API or UML design documented as yet. We will get around to
> this as soon as we can. Right now its a mad rush to the deadline, please
> bear with us.
> However I have started the transport and parser abstractions notes to be
> added to the documentation (see below).This is still work in progress and
> not yet been published to the site.
> I have tried to give a description of Transport and Parser abstractions.
> This also will be improved in due course.
>
>
> Rangika
>
> 1)Transport Abstraction -
> Transport layer coding can be given in another interface.So that a user
> can create his/her own transport interface.For eg:MyAxisTransport.This is
> an instance of AxisTransport class which is independent of the transport
> type.
> The following 2 export functions have to be created in MyAxisTransport.
>
> Create Instance (Soap transport *pOut)
> Destroy Instance (Soap transport *pIn)
>
> When AxisServer or AxisClient and MyAxisTransport projects are compiled
> the relevant Dlls will be created. (By building AxisTransport in VC++
> distribution workspace AxisTransport.dll will be built)
> At run time AxisServer.dll or AxisClient.dll loads the created transport
> object through above mentioned export functions
>
> Note:For AxisServer to run the following files should be there
> AxisCPP.conf , Server.wsdd and Log file. For the client application these
> files are not necessary
>
> 2)Parser Abstraction -
>
> Can dynamically select a parser (Xerces or Expat)at runtime.Since
> AxisServer or AxisClient and parser are compiled separately.
> A user can create his/her own parser For eg:MyXMLParser derived from
> XMLParser (AxisXMLParserXerces or AxisXMLParserExpat).
> The following 2 export functions have to be created in MyXMLParser.
>
> Create Instance ()
> Destroy Instance ()
>
> Then compile AxisServer or AxisClient and MyXMLParser projects in VC++
> Distribution workspace.Then the relevant Dlls will be created.
>
> Build the AxisTransport and AxisXMLParser projects,Which will build the
> AxisTransport.dll and AxisXMLParser.dll and also AxisTransport.lib and
> AxisXMLParser.lib in [CHECKOUT_HOME]\c\bin.
>
> 3)Then Copy AxisTransport.dll and AxisXMLParser.dll to any location
> specified by your PATH environment variable.Better to paste them in
> [AXIS_HOME]\libs\ directory
>
> 4)Add the following lines to axiscpp.conf.
> AXISTRANSPORT_HTTP:ZZZZ
> AXISXMLPARSER:WWWW
> If the selected transport is HTTP then ZZZZ will be the path to
> AxisTransport.dll (if the selected transport is SMTP then should give that
> path.)WWWW will be the path to AxisXMLParser.dll
>
> ie.
> AXISTRANSPORT_HTTP:[APACHE_HOME]\Axis\libs\AxisTransport.dll
> AXISXMLPARSER:[APACHE_HOME]\Axis\libs\AxisXMLParser.dll
>
> If the AxisTransport.dll and AxisXMLParser.dll paths are not given in
> axiscpp.conf then the hardcoded values will be used.For that set the path
> of these 2 in the PATH environment variable or copy them to the same
> location as the Client.exe.
>
> 5)When coding the client add the following libs to the library modules
> path of this project in addition to Axisclient.lib
> AxisServer.lib
>
> AxisTransport.lib & AxisXMLParser.lib.
>
>
>
>
>
>
>
> > Hi Folks,
> >
> > I understand that there are a lot of transport and parser abstractions
> > going on at the moment.
> > Could someone please publish the API's so that we can all see them prior
> > to
> > being coded.
> >
> > On this mailing list there are discussions about individual methods and
> > improvements but there never seems to be an overall view. Does anyone have
> > any UML models they can share? If not then the API's would be a good first
> > step.
> >
> > many thanks,
> > John.
> >
> >
> >
> >
> >
>
__________________________________
Do you Yahoo!?
Yahoo! Domains � Claim yours for only $14.70/year
http://smallbusiness.promotions.yahoo.com/offer
Re: Transport layer?
Posted by ra...@opensource.lk.
Hi John,
Sorry this mail was not replied to sooner.
There is no API or UML design documented as yet. We will get around to
this as soon as we can. Right now its a mad rush to the deadline, please
bear with us.
However I have started the transport and parser abstractions notes to be
added to the documentation (see below).This is still work in progress and
not yet been published to the site.
I have tried to give a description of Transport and Parser abstractions.
This also will be improved in due course.
Rangika
1)Transport Abstraction -
Transport layer coding can be given in another interface.So that a user
can create his/her own transport interface.For eg:MyAxisTransport.This is
an instance of AxisTransport class which is independent of the transport
type.
The following 2 export functions have to be created in MyAxisTransport.
Create Instance (Soap transport *pOut)
Destroy Instance (Soap transport *pIn)
When AxisServer or AxisClient and MyAxisTransport projects are compiled
the relevant Dlls will be created. (By building AxisTransport in VC++
distribution workspace AxisTransport.dll will be built)
At run time AxisServer.dll or AxisClient.dll loads the created transport
object through above mentioned export functions
Note:For AxisServer to run the following files should be there
AxisCPP.conf , Server.wsdd and Log file. For the client application these
files are not necessary
2)Parser Abstraction -
Can dynamically select a parser (Xerces or Expat)at runtime.Since
AxisServer or AxisClient and parser are compiled separately.
A user can create his/her own parser For eg:MyXMLParser derived from
XMLParser (AxisXMLParserXerces or AxisXMLParserExpat).
The following 2 export functions have to be created in MyXMLParser.
Create Instance ()
Destroy Instance ()
Then compile AxisServer or AxisClient and MyXMLParser projects in VC++
Distribution workspace.Then the relevant Dlls will be created.
Build the AxisTransport and AxisXMLParser projects,Which will build the
AxisTransport.dll and AxisXMLParser.dll and also AxisTransport.lib and
AxisXMLParser.lib in [CHECKOUT_HOME]\c\bin.
3)Then Copy AxisTransport.dll and AxisXMLParser.dll to any location
specified by your PATH environment variable.Better to paste them in
[AXIS_HOME]\libs\ directory
4)Add the following lines to axiscpp.conf.
AXISTRANSPORT_HTTP:ZZZZ
AXISXMLPARSER:WWWW
If the selected transport is HTTP then ZZZZ will be the path to
AxisTransport.dll (if the selected transport is SMTP then should give that
path.)WWWW will be the path to AxisXMLParser.dll
ie.
AXISTRANSPORT_HTTP:[APACHE_HOME]\Axis\libs\AxisTransport.dll
AXISXMLPARSER:[APACHE_HOME]\Axis\libs\AxisXMLParser.dll
If the AxisTransport.dll and AxisXMLParser.dll paths are not given in
axiscpp.conf then the hardcoded values will be used.For that set the path
of these 2 in the PATH environment variable or copy them to the same
location as the Client.exe.
5)When coding the client add the following libs to the library modules
path of this project in addition to Axisclient.lib
AxisServer.lib
AxisTransport.lib & AxisXMLParser.lib.
> Hi Folks,
>
> I understand that there are a lot of transport and parser abstractions
> going on at the moment.
> Could someone please publish the API's so that we can all see them prior
> to
> being coded.
>
> On this mailing list there are discussions about individual methods and
> improvements but there never seems to be an overall view. Does anyone have
> any UML models they can share? If not then the API's would be a good first
> step.
>
> many thanks,
> John.
>
>
>
>
>