[ 
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

Reply via email to