# EnterpriseIntitalContext.java

    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;
    	}

    }