View Javadoc

    1   // ========================================================================
    2   // $Id: InitialContextFactory.java 1327 2006-11-27 18:40:14Z janb $
    3   // Copyright 1999-2006 Mort Bay Consulting Pty. Ltd.
    4   // ------------------------------------------------------------------------
    5   // Licensed under the Apache License, Version 2.0 (the "License");
    6   // you may not use this file except in compliance with the License.
    7   // You may obtain a copy of the License at
    8   // http://www.apache.org/licenses/LICENSE-2.0
    9   // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  // ========================================================================
    15
    16  package org.mortbay.naming;
    17
    18
    19  import java.util.Hashtable;
    20  import java.util.Properties;
    21
    22  import javax.naming.CompoundName;
    23  import javax.naming.Context;
    24  import javax.naming.Name;
    25  import javax.naming.NameParser;
    26  import javax.naming.NamingException;
    27
    28  import org.mortbay.log.Log;
    29  import org.mortbay.naming.local.localContextRoot;
    30
    31
    32  /*------------------------------------------------*/
    33  /**
    34   * InitialContextFactory.java
    35   *
    36   * Factory for the default InitialContext.
    37   * Created: Tue Jul  1 19:08:08 2003
    38   *
    39   * @author <a href="mailto:janb@mortbay.com">Jan Bartel</a>
    40   * @version 1.0
    41   */
    42  public class InitialContextFactory implements javax.naming.spi.InitialContextFactory
    43  {
    44      public static class DefaultParser implements NameParser
    45      {
    46          static Properties syntax = new Properties();
    47          static
    48          {
    49              syntax.put("jndi.syntax.direction", "left_to_right");
    50              syntax.put("jndi.syntax.separator", "/");
    51              syntax.put("jndi.syntax.ignorecase", "false");
    52          }
    53          public Name parse (String name)
    54              throws NamingException
    55          {
    56              return new CompoundName (name, syntax);
    57          }
    58      };
    59
    60
    61
    62      /*------------------------------------------------*/
    63      /**
    64       * Get Context that has access to default Namespace.
    65       * This method won't be called if a name URL beginning
    66       * with java: is passed to an InitialContext.
    67       *
    68       * @see org.mortbay.naming.java.javaURLContextFactory
    69       * @param env a <code>Hashtable</code> value
    70       * @return a <code>Context</code> value
    71       */
    72      public Context getInitialContext(Hashtable env)
    73      {
    74          Log.debug("InitialContextFactory.getInitialContext()");
    75
    76          Context ctx = new localContextRoot(env);
    77          if(Log.isDebugEnabled())Log.debug("Created initial context delegate for local namespace:"+ctx);
    78
    79          return ctx;
    80      }
    81  }