rsitze 02/05/09 11:36:35 Modified: java/src/org/apache/axis/server JNDIAxisServerFactory.java Log: Cleaned up logic flow, added javadoc comments. Changed to be child of DefaultAxisServerFactory, to insure proper 'default' behavior and reduce redundent code. Remove NLS from log.debug entry/exit, as per logging guidelines. Log ignored exceptions as (NLS enabled) warning, as per developer guidelines. Revision Changes Path 1.6 +43 -85 xml-axis/java/src/org/apache/axis/server/JNDIAxisServerFactory.java Index: JNDIAxisServerFactory.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/server/JNDIAxisServerFactory.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- JNDIAxisServerFactory.java 5 Feb 2002 16:25:38 -0000 1.5 +++ JNDIAxisServerFactory.java 9 May 2002 18:36:34 -0000 1.6 @@ -56,7 +56,9 @@ package org.apache.axis.server; import org.apache.axis.EngineConfiguration; +import org.apache.axis.AxisEngine; import org.apache.axis.AxisFault; +import org.apache.axis.utils.JavaUtils; import javax.naming.InitialContext; import javax.naming.NamingException; @@ -72,7 +74,7 @@ * @author Glen Daniels ([EMAIL PROTECTED]) */ -public class JNDIAxisServerFactory implements AxisServerFactory { +public class JNDIAxisServerFactory extends DefaultAxisServerFactory { /** * Obtain an AxisServer reference, using JNDI if possible, otherwise @@ -82,15 +84,17 @@ * * NOTE : REQUIRES SERVLET 2.3 FOR THE GetServletContextName() CALL! * - * @param name the JNDI name we're interested in - * @param configProvider a EngineConfiguration which should be used - * to configure any engine we end up creating, or - * null to use the default configuration pattern. + * @param environment The following is used, in addition to + * the keys used by the parent class: + * AxisEngine.ENV_SERVLET_CONTEXT + * [required, else default/parent behavior] + * - Instance of ServletContext */ public AxisServer getServer(Map environment) throws AxisFault { - AxisServer server = null; + log.debug("Enter: JNDIAxisServerFactory::getServer"); + InitialContext context = null; // First check to see if JNDI works @@ -98,99 +102,53 @@ try { context = new InitialContext(); } catch (NamingException e) { + log.warn(JavaUtils.getMessage("jndiNotFound00"), e); } - EngineConfiguration config = null; + ServletContext servletContext = null; try { - config = (EngineConfiguration)environment. - get(EngineConfiguration.PROPERTY_NAME); + servletContext = + (ServletContext)environment.get(AxisEngine.ENV_SERVLET_CONTEXT); } catch (ClassCastException e) { - // Just in case, fall through here. + log.warn(JavaUtils.getMessage("servletContextWrongClass00"), e); + // Fall through } - - if (context != null) { - // Figure out the name by looking in the servlet context (for - // now) - ServletContext servletContext = - (ServletContext)environment.get("servletContext"); - if (servletContext != null) { + + AxisServer server = null; + if (context != null && servletContext != null) { + // Figure out the name by looking in the servlet context (for now) - /** - * !!! WARNING - THIS CLASS NEEDS TO FIGURE OUT THE CORRECT - * NAMING SCHEME FOR GETTING/PUTTING SERVERS FROM/TO JNDI! - * - */ + /** + * !!! WARNING - THIS CLASS NEEDS TO FIGURE OUT THE CORRECT + * NAMING SCHEME FOR GETTING/PUTTING SERVERS FROM/TO JNDI! + * + */ - // For servlet 2.3....? - // String name = servletContext.getServletContextName(); + // For servlet 2.3....? + // String name = servletContext.getServletContextName(); - // THIS IS NOT ACCEPTABLE JNDI NAMING... - String name = servletContext.getRealPath("/WEB-INF/Server"); + // THIS IS NOT ACCEPTABLE JNDI NAMING... + String name = servletContext.getRealPath("/WEB-INF/Server"); - // We've got JNDI, so try to find an AxisServer at the - // specified name. + // We've got JNDI, so try to find an AxisServer at the + // specified name. + try { + server = (AxisServer)context.lookup(name); + } catch (NamingException e) { + // Didn't find it. + server = super.getServer(environment); try { - server = (AxisServer)context.lookup(name); - } catch (NamingException e) { - // Didn't find it. - server = createNewServer(config); - try { - context.bind(name, server); - } catch (NamingException e1) { - // !!! Couldn't do it, what should we do here? - } + context.bind(name, server); + } catch (NamingException e1) { + // !!! Couldn't do it, what should we do here? } - } else { - server = createNewServer(config); } + } else { + server = super.getServer(environment); } - return server; - } - - /** - * Do the actual work of creating a new AxisServer, using the passed - * engine configuration, or going through the default configuration - * steps if null is passed. - * - * @return a shiny new AxisServer, ready for use. - */ - static private AxisServer createNewServer(EngineConfiguration config) - { - // Just use the passed config if there is one. - if (config != null) { - return new AxisServer(config); - } - - // Default configuration steps... - // - // 1. Check for a system property telling us which Engine - // Configuration to use. If we find it, try creating one. - String configClass = System.getProperty("axis.engineConfigClass"); - 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 { - Class cls = Class.forName(configClass); - config = (EngineConfiguration)cls.newInstance(); - } catch (ClassNotFoundException e) { - // Fall through??? - } catch (InstantiationException e) { - // Fall through??? - } catch (IllegalAccessException e) { - // Fall through??? - } - } + log.debug("Exit: JNDIAxisServerFactory::getServer"); - // 2. If we couldn't make one above, use the default one. - // !!! May want to add options here for getting another system - // property which is the config file name... - if (config == null) { - return new AxisServer(); - } else { - // 3. Create an AxisServer using the appropriate config - return new AxisServer(config); - } + return server; } }