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  }