axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Bartley <tbart...@au1.ibm.com>
Subject Re: New client configuration API
Date Sun, 08 May 2005 23:43:00 GMT
I would really like to see this implemented in conjunction with solving 
the multiple instances per process problem.

i.e have I guess something like:

class Axis;

Axis* Axis::initialize(AxisCPP_Configuration*  config, bool isServer);

and then have the Web service constructors accept an "Axis" object rather 
than just an AxisCPP_Configuration object to their constructors.

The Axis object would encapsulate all of the current global variables - it 
should be opaque.

In order to avoid having to pass an Axis* everywhere, maybe a first 
approximation of this would be to set an Axis* as thread-local-storage. 
Yuck but may be quicker implementation - the top level interfaces could be 
set up to have the final interface including an Axis* and this would allow 
a more gradual propagation of the change.

Regards,

Tim
--
IBM Tivoli Access Manager Development
Gold Coast Development Lab, Australia
+61-7-5552-4001 phone
+61-7-5571-0420 fax



John Hawkins <HAWKINSJ@uk.ibm.com> 
06/05/2005 23:39
Please respond to
"Apache AXIS C Developers List"


To
axis-c-dev@ws.apache.org
cc

Subject
New client configuration API







Hi Folks, 

we'd like to implement a new API for configuration of the client-side. 

I've written a vrief synopsis of what is there to day and what we'd like 
to do.......... 


The environment variable is AXISCPP_DEPLOY. This variable is used by the 
configuration system to look up a file called axiscpp.conf. This file 
consists of the following: 

#ClientLogPath:                 The path to the axis client log 
#ClientWSDDFilePath:         The path to the client wsdd 
#XMLParser:                 The xml parser library 
#Transport_http:                 The HTTP transport library 
#Channel_HTTP:                 The HTTP transport channel library 
#Channel_HTTP_SSL:         The HTTP transport secure channel library 

This data can be placed in a new configuration Object with the following 
signature (Pseudo) 

AxisCPP_Configuration 
{ 
        get/set ClientLog(String); 
        get/set ClientWSDDFile(String); 
get/set XMLParserLibrary(String); 
get/set TransportLibrary(String); 
get/set HTTPChannelLibrary(String); 
get/set HTTPSSLChannelLibrary(String); 
} 

A new Web Service constructor will be created that takes in an 
AxisCPP_Configuration object. This constructor will be in addition to the 
current range of constructors that are created for each service. 

The user may create a web service using the constructor. However, if they 
attempt to use the constructor with a configuration object more than once 
in any given process the configuration object will be ignored i.e. the 
engine can only be configured once per process. 


Client WSDD files will still be required and no new API will be introduced 
for them. 


thoughts please? 


thanks, 
john.

Mime
View raw message