You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by rs...@apache.org on 2002/05/09 20:35:11 UTC

cvs commit: xml-axis/java/src/org/apache/axis/server DefaultAxisServerFactory.java

rsitze      02/05/09 11:35:11

  Modified:    java/src/org/apache/axis/server
                        DefaultAxisServerFactory.java
  Log:
  Cleaned up logic flow, added javadoc comments.
  Remove NLS from log.debug entry/exit, as per logging guidelines.
  Log ignored exceptions as (NLS enabled) warning, as per developer guidelines.
  Replace string literal with string constant.
  
  Revision  Changes    Path
  1.7       +102 -54   xml-axis/java/src/org/apache/axis/server/DefaultAxisServerFactory.java
  
  Index: DefaultAxisServerFactory.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/server/DefaultAxisServerFactory.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DefaultAxisServerFactory.java	5 Feb 2002 16:25:38 -0000	1.6
  +++ DefaultAxisServerFactory.java	9 May 2002 18:35:11 -0000	1.7
  @@ -58,6 +58,10 @@
   import org.apache.axis.EngineConfiguration;
   import org.apache.axis.AxisFault;
   import org.apache.axis.AxisEngine;
  +import org.apache.axis.utils.JavaUtils;
  +
  +import org.apache.commons.logging.Log;
  +import org.apache.commons.logging.LogFactory;
   
   import javax.naming.InitialContext;
   import javax.naming.NamingException;
  @@ -68,91 +72,135 @@
    * Helper class for obtaining AxisServers.  Default implementation.
    * 
    * @author Glen Daniels (gdaniels@macromedia.com)
  - */ 
  + */
   
   public class DefaultAxisServerFactory implements AxisServerFactory {
  +    protected static Log log =
  +        LogFactory.getLog(DefaultAxisServerFactory.class.getName());
   
       /**
  -     * Get an AxisServer.  This factory looks for an "engineConfig" in the
  -     * environment Map, and if one is found, uses that.  Otherwise it
  -     * uses the default initialization.
  -     * 
  +     * Get an AxisServer.
  +     * <p>
  +     * Factory obtains EngineConfiguration as first found of the following:
  +     * a) EngineConfiguration instance, keyed to
  +     *    EngineConfiguration.PROPERTY_NAME in 'environment', or
  +     * b) EngineConfiguration class name, keyed to
  +     *    AxisEngine.PROP_CONFIG_CLASS in System Properties.
  +     *    Class is instantiated if found.
  +     * <p>
  +     * If an EngineConfiguration cannot be located, the default
  +     * AxisServer constructor is used.
  +     * <p>
  +     * The AxisServer's option AxisEngine.PROP_ATTACHMENT_DIR is set to
  +     * the (first found) value of either AxisEngine.ENV_ATTACHMENT_DIR
  +     * or AxisEngine.ENV_SERVLET_REALPATH.
  +     *
  +     * @param environment The following keys are used:
  +     *        AxisEngine.ENV_ATTACHMENT_DIR
  +     *                   - Set as default value for Axis option
  +     *                     AxisEngine.PROP_ATTACHMENT_DIR
  +     *        AxisEngine.ENV_SERVLET_REALPATH
  +     *                   - Set as alternate default value for Axis option
  +     *                     AxisEngine.PROP_ATTACHMENT_DIR
  +     *        EngineConfiguration.PROPERTY_NAME
  +     *                   - Instance of EngineConfiguration,
  +     *                     if not set then an attempt is made to retreive
  +     *                     a class name from AxisEngine.PROP_CONFIG_CLASS
        */
  -    public AxisServer getServer(Map environment)
  -        throws AxisFault
  -    {
  -        EngineConfiguration config = null;
  -        try {
  -            config = (EngineConfiguration)environment.
  -                get(EngineConfiguration.PROPERTY_NAME);
  -        } catch (ClassCastException e) {
  -            // Just in case, fall through here.
  -        }
  +    public AxisServer getServer(Map environment) throws AxisFault {
  +        log.debug("Enter: DefaultAxisServerFactory::getServer");
   
  -        
  -        AxisServer ret= createNewServer(config);
  +        AxisServer ret = createServer(environment);
   
  -        String attachmentsdirservlet=  null;
  -        if( null != ret &&  environment != null ){
  -          if( null !=  (attachmentsdirservlet= (String) 
  -                environment.get("axis.attachments.Directory"))){
  -              ret.setOption(AxisEngine.PROP_ATTACHMENT_DIR,
  -               attachmentsdirservlet);
  -          }
  -          if(null == (attachmentsdirservlet= (String)
  -                ret.getOption(AxisEngine.PROP_ATTACHMENT_DIR))){
  -              if( null !=  (attachmentsdirservlet= (String) 
  -                  environment.get("servlet.realpath"))){
  -                 ret.setOption(AxisEngine.PROP_ATTACHMENT_DIR, attachmentsdirservlet);
  -              }
  -          }    
  -        }
  -        if(ret != null){
  -            attachmentsdirservlet= (String) ret.getOption(AxisEngine.PROP_ATTACHMENT_DIR);
  -            File attdirFile= new File(attachmentsdirservlet);
  -            if( !attdirFile.isDirectory()){
  -                      attdirFile.mkdirs();
  +        if (ret != null) {
  +            if (environment != null) {
  +                ret.setOptionDefault(AxisEngine.PROP_ATTACHMENT_DIR,
  +                    (String)environment.get(AxisEngine.ENV_ATTACHMENT_DIR));
  +
  +                ret.setOptionDefault(AxisEngine.PROP_ATTACHMENT_DIR,
  +                    (String)environment.get(AxisEngine.ENV_SERVLET_REALPATH));
  +            }
  +
  +            String attachmentsdir = (String)ret.getOption(AxisEngine.PROP_ATTACHMENT_DIR);
  +
  +            if (attachmentsdir != null) {
  +                File attdirFile = new File(attachmentsdir);
  +                if (!attdirFile.isDirectory()) {
  +                    attdirFile.mkdirs();
  +                }
               }
           }
   
  +        log.debug("Exit: DefaultAxisServerFactory::getServer");
  +
           return ret;
       }
   
       /**
  -     * Do the actual work of creating a new AxisServer, using the passed
  -     * configuration provider, or going through the default configuration
  -     * steps if null is passed.
  +     * Do the actual work of creating a new AxisServer, using the
  +     * configuration, or using the default constructor if null is passed.
        *
        * @return a shiny new AxisServer, ready for use.
        */
  -    static private AxisServer createNewServer(EngineConfiguration config)
  +    private static AxisServer createServer(Map environment) {
  +        EngineConfiguration config = getEngineConfiguration(environment);
  +
  +        // Return new AxisServer using the appropriate config
  +        return (config == null) ? new AxisServer() : new AxisServer(config);
  +    }
  +	
  +    /**
  +     * Look for EngineConfiguration, it is first of:
  +     * a) EngineConfiguration instance, keyed to
  +     *    EngineConfiguration.PROPERTY_NAME in 'environment', or
  +     * b) EngineConfiguration class name, keyed to
  +     *    AxisEngine.PROP_CONFIG_CLASS in System Properties.
  +     *    Class is instantiated if found.
  +     */
  +    private static EngineConfiguration getEngineConfiguration(Map environment)
       {
  +        log.debug("Enter: DefaultAxisServerFactory::getEngineConfiguration");
  +
  +        EngineConfiguration config = null;
  +		
  +        if (environment != null) {
  +            try {
  +                config = (EngineConfiguration)environment.get(EngineConfiguration.PROPERTY_NAME);
  +            } catch (ClassCastException e) {
  +                log.warn(JavaUtils.getMessage("engineConfigWrongClass00"), e);
  +                // Fall through
  +            }
  +        }
  +		
           if (config == null) {
               // A default engine configuration class may be set in a system
               // property. If so, try creating an engine configuration.
  -            String configClass = System.getProperty("axis.engineConfigClass");
  +            String configClass = System.getProperty(AxisEngine.PROP_CONFIG_CLASS);
               if (configClass != null) {
  -                // Got one - so try to make it (which means it had better have
  -                // a default constructor - may make it possible later to pass
  -                // in some kind of environmental parameters...)
                   try {
  +                    // Got one - so try to make it (which means it had better have
  +                    // a default constructor - may make it possible later to pass
  +                    // in some kind of environmental parameters...)
                       Class cls = Class.forName(configClass);
                       config = (EngineConfiguration)cls.newInstance();
                   } catch (ClassNotFoundException e) {
  -                    // Fall through???
  +                    log.warn(JavaUtils.getMessage("engineConfigNoClass00", configClass), e);
  +                    // Fall through
                   } catch (InstantiationException e) {
  -                    // Fall through???
  +                    log.warn(JavaUtils.getMessage("engineConfigNoInstance00", configClass), e);
  +                    // Fall through
                   } catch (IllegalAccessException e) {
  -                    // Fall through???
  +                    log.warn(JavaUtils.getMessage("engineConfigIllegalAccess00", configClass), e);
  +                    // Fall through
  +                } catch (ClassCastException e) {
  +                    log.warn(JavaUtils.getMessage("engineConfigWrongClass01", configClass), e);
  +                    // Fall through
                   }
               }
           }
   
  -        // Create an AxisServer using the appropriate config
  -        if (config == null) {
  -            return new AxisServer();
  -        } else {
  -            return new AxisServer(config);
  -        }
  +        log.debug("Exit: DefaultAxisServerFactory::getEngineConfiguration");
  +
  +        return config;
       }
   }