package org.apache.synapse.commons.beanstalk.enterprise; import java.util.Hashtable; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.naming.spi.NamingManager; /** * Enterprise specific Initial context which is avoiding allows to setup the * user defined properties * to the context * */ public class EnterpriseIntitalContext extends InitialContext { public EnterpriseIntitalContext() throws NamingException { super(); } /** * Constructs an initial context using the supplied environment. * Environment properties are discussed in the class description. * * <p> * This constructor will not modify <tt>environment</tt> or save a reference * to it, but may save a clone. * * @param environment * environment used to create the initial context. * Null indicates an empty environment. * * @throws NamingException * if a naming exception is encountered */ public EnterpriseIntitalContext(Hashtable<?, ?> environment) throws NamingException { if (environment != null) { environment = (Hashtable) environment.clone(); } init(environment); } /* (non-Javadoc) * @see javax.naming.InitialContext#getURLOrDefaultInitCtx(java.lang.String) */ @Override protected Context getURLOrDefaultInitCtx(String name) throws NamingException { String scheme = getURLScheme(name); if (scheme != null) { Context ctx = NamingManager.getURLContext(scheme, myProps); if (ctx != null) { return ctx; } } return getDefaultInitCtx(); } private static String getURLScheme(String str) { int colon_posn = str.indexOf(':'); int slash_posn = str.indexOf('/'); if (colon_posn > 0 && (slash_posn == -1 || colon_posn < slash_posn)) return str.substring(0, colon_posn); return null; } }