axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Hawkins <HAWKI...@uk.ibm.com>
Subject Re: New client configuration API
Date Mon, 09 May 2005 09:02:47 GMT
Hi Tim,

I'm a little confused you seem to be adressing a slightly different issue?

I understand that it's beneficial to create a system without globals 
(static objects). What are the issues today - is it just the config that's 
static and causing us not to have this model?

Why have the isServer boolean? What is it you're trying to achieve?

cheers,
John.





Tim Bartley <tbartley@au1.ibm.com> wrote on 09/05/2005 00:43:00:

> 
> 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