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.