[
http://issues.apache.org/jira/browse/AXISCPP-426?page=comments#action_12318882
]
John Kelly commented on AXISCPP-426:
------------------------------------
I've got an proposal for a solution (i've also implemented it) - comments
appeciated
#include <axis/GDefine.hpp>
#include <string>
/**
* @class AxisCPPConfigDefaults
* @brief class for programmatically setting configuration defaults.
*
* AxisCPPConfigDefaults allows you to apply new configuration
* defaults, prior to the instantiation of the first web service
* class in the application. These programmer-set defaults may be
* over-ridden by the external factors, such as..
* - the values in axiscpp.conf
* - the value of AXISCPP_DEPLOY
*
* The get/set methods don't have any effect on the ACTUAL defaults. They
* are mearly a bundle of values which are set on the ACTUAL defaults when
* the apply() method is issued.
*
* It consists of...
* (a) get/set methods for each of the values to be found
* in the configuration file, namely:
* - ClientLog
* - ClientWSDDFile
* - XMLParserLibrary
* - HTTPTransportLibrary
* - HTTPChannelLibrary
* - HTTPSSLChannelLibrary
* - NodeName
* - ListenPort
* - SecureInfo
* When the first web-services class is instantiated any values set in
the config
* file would over-ride those set by this class.
* (b) get/set methods for AxisHome
* This is the programmatic equivaluent of the AXISCPP_DEPLOY
* environment variable.
* When the first class is instantiated, if AXISCPP_DEPLOY is set
* it will over-ride the value set by this class.
* (c) The apply() method takes any values that have been set on the object
* and set them as the Axis CPP defaults for this process.
*
* Exceptions thrown: AxisConfigException
*
* Once the first web service is instantiated, new defaults may no longer
* be applied. If this is attempted an AxisConfigException is thrown.
*
* Usage examples
* (a) Setting the location of the axiscpp.conf file to the
* "current working directory"
*
* AxisCPPDefaultConfig defConfig;
* defConfig.setAxisHome(".");
* defConfig.apply();
*
*
* @author John Kelly ([EMAIL PROTECTED])
*/
AXIS_CPP_NAMESPACE_START
/*
* Forward declarations.
*/
class AxisCPPConfigDefaultsImpl;
/*
* Class definition.
*/
class STORAGE_CLASS_INFO AxisCPPConfigDefaults
{
public:
AxisCPPConfigDefaults();
~AxisCPPConfigDefaults();
char* getClientLog();
char* getClientWSDDFile();
char* getXMLParserLibrary();
char* getHTTPTransportLibrary();
char* getHTTPChannelLibrary();
char* getHTTPSSLChannelLibrary();
char* getNodeName();
char* getListenPort();
char* getSecureInfo();
char* getAxisHome();
void setClientLog(char*);
void setClientWSDDFile(char*);
void setXMLParserLibrary(char*);
void setHTTPTransportLibrary(char*);
void setHTTPChannelLibrary(char*);
void setHTTPSSLChannelLibrary(char*);
void setNodeName(char*);
void setListenPort(char*);
void setSecureInfo(char*);
void setAxisHome(char*);
void apply();
protected:
AxisCPPConfigDefaultsImpl *m_pImpl;
};
AXIS_CPP_NAMESPACE_END
> Programmatic configuration
> --------------------------
>
> Key: AXISCPP-426
> URL: http://issues.apache.org/jira/browse/AXISCPP-426
> Project: Axis-C++
> Type: New Feature
> Components: Configuration
> Versions: future (enh)
> Environment: all
> Reporter: Tim Bartley
>
> It would be useful to be able to provide all configuration information
> programatically not least to prevent interaction between different clients
> and servers.
> Regards,
> Tim
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira