1 17 package org.sape.carbon.services.jndi; 18 19 import java.util.Hashtable ; 20 import java.util.Map ; 21 22 import javax.naming.InitialContext ; 23 import javax.naming.NamingException ; 24 import javax.naming.directory.InitialDirContext ; 25 26 import org.apache.commons.logging.Log; 27 import org.apache.commons.logging.LogFactory; 28 29 import org.sape.carbon.core.component.Component; 30 import org.sape.carbon.core.component.ComponentConfiguration; 31 import org.sape.carbon.core.component.lifecycle.Configurable; 32 import org.sape.carbon.core.component.lifecycle.Initializable; 33 import org.sape.carbon.core.config.InvalidConfigurationException; 34 35 43 public class DefaultInitialContextFactoryImpl 44 implements InitialContextFactory, Configurable, Initializable { 45 46 private Log log = LogFactory.getLog(this.getClass()); 47 48 protected Hashtable environment; 49 50 public void configure(ComponentConfiguration configuration) { 51 52 try { 53 InitialContextFactoryConfiguration factoryConfig = 54 (InitialContextFactoryConfiguration) configuration; 55 56 this.environment.clear(); 57 if (factoryConfig.getEnvironment() != null) { 58 this.environment.putAll(factoryConfig.getEnvironment()); 59 } 60 61 } catch (ClassCastException cce) { 62 throw new InvalidConfigurationException( 63 this.getClass(), 64 configuration.getConfigurationName(), 65 "ConfigurationInterface", 66 "Configuration was not of type " + 67 InitialContextFactoryConfiguration.class.getName(), 68 cce); 69 } 70 71 72 } 73 74 public void initialize(Component thisComponent) { 75 this.environment = new Hashtable (); 76 } 77 78 85 public InitialContext getContext() throws NamingException { 86 try { 87 return new InitialContext (this.environment); 88 } catch (NamingException ne) { 89 this.log.info("Caught NamingException", ne); 90 throw ne; 91 } 92 } 93 94 105 public InitialContext getContext(Map givenEnvironment) 106 throws NamingException { 107 108 try { 109 Hashtable localEnvironment = new Hashtable (this.environment); 110 if (givenEnvironment != null) { 111 localEnvironment.putAll(givenEnvironment); 112 } 113 return new InitialContext (localEnvironment); 114 } catch (NamingException ne) { 115 this.log.info("Caught NamingException", ne); 116 throw ne; 117 } 118 } 119 120 128 public InitialContext getContextIgnoreConfig(Map givenEnvironment) 129 throws NamingException { 130 131 try { 132 Hashtable localEnvironment = null; 133 if (givenEnvironment instanceof Hashtable ) { 134 localEnvironment = (Hashtable ) givenEnvironment; 135 } else if (givenEnvironment != null) { 136 localEnvironment = new Hashtable (givenEnvironment); 137 } 138 139 return new InitialContext (localEnvironment); 140 } catch (NamingException ne) { 141 this.log.info("Caught NamingException", ne); 142 throw ne; 143 } 144 } 145 146 153 public InitialDirContext getDirContext() throws NamingException { 154 try { 155 return new InitialDirContext (this.environment); 156 } catch (NamingException ne) { 157 this.log.info("Caught NamingException", ne); 158 throw ne; 159 } 160 } 161 162 173 public InitialDirContext getDirContext(Map givenEnvironment) 174 throws NamingException { 175 176 try { 177 Hashtable localEnvironment = new Hashtable (this.environment); 178 if (givenEnvironment != null) { 179 localEnvironment.putAll(givenEnvironment); 180 } 181 return new InitialDirContext (localEnvironment); 182 } catch (NamingException ne) { 183 this.log.info("Caught NamingException", ne); 184 throw ne; 185 } 186 } 187 188 196 public InitialDirContext getDirContextIgnoreConfig(Map givenEnvironment) 197 throws NamingException { 198 199 try { 200 Hashtable localEnvironment = null; 201 if (givenEnvironment instanceof Hashtable ) { 202 localEnvironment = (Hashtable ) givenEnvironment; 203 } else if (givenEnvironment != null) { 204 localEnvironment = new Hashtable (givenEnvironment); 205 } 206 207 return new InitialDirContext (localEnvironment); 208 } catch (NamingException ne) { 209 this.log.info("Caught NamingException", ne); 210 throw ne; 211 } 212 } 213 214 } 215 | Popular Tags |