Java 类javax.naming.Context 实例源码

项目:apache-tomcat-7.0.73-with-comment    文件:TestNamingContext.java   
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

    resp.setContentType("text/plain;UTF-8");
    PrintWriter out = resp.getWriter();

    try {
        Context ctx = new InitialContext();
        Object obj = ctx.lookup("java:comp/env/bug50351");
        TesterObject to = (TesterObject) obj;
        out.print(to.getFoo());
    } catch (NamingException ne) {
        ne.printStackTrace(out);
    }
}
项目:BibliotecaPS    文件:DataSourceTest.java   
/**
 * This method is separated from the rest of the example since you normally
 * would NOT register a JDBC driver in your code. It would likely be
 * configered into your naming and directory service using some GUI.
 * 
 * @throws Exception
 *             if an error occurs
 */
private void registerDataSource() throws Exception {
    this.tempDir = File.createTempFile("jnditest", null);
    this.tempDir.delete();
    this.tempDir.mkdir();
    this.tempDir.deleteOnExit();

    com.mysql.jdbc.jdbc2.optional.MysqlDataSource ds;
    Hashtable<String, String> env = new Hashtable<String, String>();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");
    env.put(Context.PROVIDER_URL, this.tempDir.toURI().toString());
    this.ctx = new InitialContext(env);
    assertTrue("Naming Context not created", this.ctx != null);
    ds = new com.mysql.jdbc.jdbc2.optional.MysqlDataSource();
    ds.setUrl(dbUrl); // from BaseTestCase
    this.ctx.bind("_test", ds);
}
项目:tomcat7    文件:TestNamingContext.java   
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

    resp.setContentType("text/plain;UTF-8");
    PrintWriter out = resp.getWriter();

    try {
        Context ctx = new InitialContext();
        Object obj = ctx.lookup("java:comp/env/bug50351");
        TesterObject to = (TesterObject) obj;
        out.print(to.getFoo());
    } catch (NamingException ne) {
        ne.printStackTrace(out);
    }
}
项目:unitimes    文件:LocalContext.java   
@Override
public Context createSubcontext(Name name) throws NamingException {
    if (name.isEmpty())
        throw new InvalidNameException("Cannot bind empty name");

    Name nm = getMyComponents(name);
    String atom = nm.get(0);
    Object inter = iBindings.get(atom);

    if (nm.size() == 1) {
        if (inter != null)
            throw new NameAlreadyBoundException("Use rebind to override");

        Context child = createCtx(this, atom, iEnv);

        iBindings.put(atom, child);

        return child;
    } else {
        if (!(inter instanceof Context))
            throw new NotContextException(atom + " does not name a context");

        return ((Context) inter).createSubcontext(nm.getSuffix(1));
    }
}
项目:lams    文件:NamingContext.java   
/**
 * Retrieves the parser associated with the named context. In a 
 * federation of namespaces, different naming systems will parse names 
 * differently. This method allows an application to get a parser for 
 * parsing names into their atomic components using the naming convention 
 * of a particular naming system. Within any single naming system, 
 * NameParser objects returned by this method must be equal (using the 
 * equals() test).
 * 
 * @param name the name of the context from which to get the parser
 * @return a name parser that can parse compound names into their atomic 
 * components
 * @exception NamingException if a naming exception is encountered
 */
public NameParser getNameParser(Name name)
    throws NamingException {

    while ((!name.isEmpty()) && (name.get(0).length() == 0))
        name = name.getSuffix(1);
    if (name.isEmpty())
        return nameParser;

    if (name.size() > 1) {
        Object obj = bindings.get(name.get(0));
        if (obj instanceof Context) {
            return ((Context) obj).getNameParser(name.getSuffix(1));
        } else {
            throw new NotContextException
                (sm.getString("namingContext.contextExpected"));
        }
    }

    return nameParser;

}
项目:the-vigilantes    文件:DataSourceTest.java   
/**
 * This method is separated from the rest of the example since you normally
 * would NOT register a JDBC driver in your code. It would likely be
 * configered into your naming and directory service using some GUI.
 * 
 * @throws Exception
 *             if an error occurs
 */
private void registerDataSource() throws Exception {
    this.tempDir = File.createTempFile("jnditest", null);
    this.tempDir.delete();
    this.tempDir.mkdir();
    this.tempDir.deleteOnExit();

    com.mysql.jdbc.jdbc2.optional.MysqlDataSource ds;
    Hashtable<String, String> env = new Hashtable<String, String>();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");
    env.put(Context.PROVIDER_URL, this.tempDir.toURI().toString());
    this.ctx = new InitialContext(env);
    assertTrue("Naming Context not created", this.ctx != null);
    ds = new com.mysql.jdbc.jdbc2.optional.MysqlDataSource();
    ds.setUrl(dbUrl); // from BaseTestCase
    this.ctx.bind("_test", ds);
}
项目:jboss-eap7.1-playground    文件:LegacyClusterJBossEjbClient.java   
public static void main(String[] args) throws NamingException {
    checkArgs(args);
    final Hashtable<String, String> jndiProperties = new Hashtable<>();
    jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
    final Context ic = new InitialContext(jndiProperties);

    Simple proxy = (Simple) ic.lookup("ejb:EAP71-PLAYGROUND-server/ejb/SimpleBean!" + Simple.class.getName());

    HashSet<String> serverList = new HashSet<>();

    for (int i = 0; i < 20; i++) {
        serverList.add(proxy.getJBossServerName());
    }

    if (serverList.size() > 1) {
        log.info("Server should be part of a cluster or multiple URL's as the invocation was executed on the following servers : " + serverList);
    } else if (serverList.size() == 1) {
        log.warning("Server is not part of a cluster with multiple nodes, or did not have multiple PROVIDER URL's, as the invocation was executed on a single server : " + new ArrayList<String>(serverList).get(0));
    } else {
        throw new RuntimeException("Unexpected result, no server list!");
    }
}
项目:tomcat7    文件:TesterFactory.java   
@Override
public Object getObjectInstance(Object obj, Name name, Context nameCtx,
        Hashtable<?,?> environment) throws Exception {

    if (obj instanceof Reference) {
        Reference ref = (Reference)obj;
        String className = ref.getClassName();

        if (className == null) {
            throw new RuntimeException();
        }

        if (className.equals("org.apache.naming.resources.TesterObject")) {
            ClassLoader cl = Thread.currentThread().getContextClassLoader();
            Class<?> clazz =
                cl.loadClass("org.apache.naming.resources.TesterObject");
            return clazz.newInstance();
        }
    }
    return null;
}
项目:oscm    文件:ServiceFactory.java   
@SuppressWarnings("unchecked")
private <T> T connectToEJB(Class<T> remoteInterface, String userName,
        String password) throws Exception {
    try {
        props.put(Context.SECURITY_PRINCIPAL, userName);
        props.put(Context.SECURITY_CREDENTIALS, password);
        props.put(Context.INITIAL_CONTEXT_FACTORY,"org.apache.openejb.client.RemoteInitialContextFactory");
        props.put("java.naming.provider.url", "http://127.0.0.1:8080/tomee/ejb");
        props.put("openejb.authentication.realmName", "bss-realm");

        Context context = new InitialContext(props);
        T service = (T) context.lookup(remoteInterface.getName());
        return service;
    } catch (NamingException e) {
        throw new SaaSSystemException("Service lookup failed!", e);
    }
}
项目:apache-tomcat-7.0.73-with-comment    文件:TesterFactory.java   
@Override
public Object getObjectInstance(Object obj, Name name, Context nameCtx,
        Hashtable<?,?> environment) throws Exception {

    if (obj instanceof Reference) {
        Reference ref = (Reference)obj;
        String className = ref.getClassName();

        if (className == null) {
            throw new RuntimeException();
        }

        if (className.equals("org.apache.naming.resources.TesterObject")) {
            ClassLoader cl = Thread.currentThread().getContextClassLoader();
            Class<?> clazz =
                cl.loadClass("org.apache.naming.resources.TesterObject");
            return clazz.newInstance();
        }
    }
    return null;
}
项目:lazycat    文件:DefaultInstanceManager.java   
public DefaultInstanceManager(Context context, Map<String, Map<String, String>> injectionMap,
        org.apache.catalina.Context catalinaContext, ClassLoader containerClassLoader) {
    classLoader = catalinaContext.getLoader().getClassLoader();
    privileged = catalinaContext.getPrivileged();
    this.containerClassLoader = containerClassLoader;
    ignoreAnnotations = catalinaContext.getIgnoreAnnotations();
    Log log = catalinaContext.getLogger();
    Set<String> classNames = new HashSet<String>();
    loadProperties(classNames, "org/apache/catalina/core/RestrictedServlets.properties",
            "defaultInstanceManager.restrictedServletsResource", log);
    loadProperties(classNames, "org/apache/catalina/core/RestrictedListeners.properties",
            "defaultInstanceManager.restrictedListenersResource", log);
    loadProperties(classNames, "org/apache/catalina/core/RestrictedFilters.properties",
            "defaultInstanceManager.restrictedFiltersResource", log);
    restrictedClasses = Collections.unmodifiableSet(classNames);
    this.context = context;
    this.injectionMap = injectionMap;
    this.postConstructMethods = catalinaContext.findPostConstructMethods();
    this.preDestroyMethods = catalinaContext.findPreDestroyMethods();
}
项目:lams    文件:JNDIConnectionProvider.java   
private void init() {

        if (!isAlwaysLookup()) {
            Context ctx = null;
            try {
                ctx = (props != null) ? new InitialContext(props) : new InitialContext(); 

                datasource = (DataSource) ctx.lookup(url);
            } catch (Exception e) {
                getLog().error(
                        "Error looking up datasource: " + e.getMessage(), e);
            } finally {
                if (ctx != null) {
                    try { ctx.close(); } catch(Exception ignore) {}
                }
            }
        }
    }
项目:alfresco-repository    文件:LDAPUserRegistry.java   
@Override
public void process(SearchResult result) throws NamingException, ParseException
{
    try
    {
        doProcess(result);
    }
    finally
    {
        Object obj = result.getObject();

        if (obj != null && obj instanceof Context)
        {
            try
            {
                ((Context)obj).close();
            }
            catch (NamingException e)
            {
                logger.debug("error when closing result block context", e);
            }
            obj = null;
        }
        result = null;
    }
}
项目:apache-tomcat-7.0.73-with-comment    文件:NamingContext.java   
/**
 * Enumerates the names bound in the named context, along with the 
 * objects bound to them. The contents of any subcontexts are not 
 * included.
 * <p>
 * If a binding is added to or removed from this context, its effect on 
 * an enumeration previously returned is undefined.
 * 
 * @param name the name of the context to list
 * @return an enumeration of the bindings in this context. 
 * Each element of the enumeration is of type Binding.
 * @exception NamingException if a naming exception is encountered
 */
@Override
public NamingEnumeration<Binding> listBindings(Name name)
    throws NamingException {
    // Removing empty parts
    while ((!name.isEmpty()) && (name.get(0).length() == 0))
        name = name.getSuffix(1);
    if (name.isEmpty()) {
        return new NamingContextBindingsEnumeration(bindings.values().iterator(), this);
    }

    NamingEntry entry = bindings.get(name.get(0));

    if (entry == null) {
        throw new NameNotFoundException
            (sm.getString("namingContext.nameNotBound", name, name.get(0)));
    }

    if (entry.type != NamingEntry.CONTEXT) {
        throw new NamingException
            (sm.getString("namingContext.contextExpected"));
    }
    return ((Context) entry.value).listBindings(name.getSuffix(1));
}
项目:monarch    文件:CleanUpJUnitTest.java   
@Test
public void testBlockingTimeOut() {
  try {
    Context ctx = cache.getJNDIContext();
    GemFireConnPooledDataSource ds =
        (GemFireConnPooledDataSource) ctx.lookup("java:/PooledDataSource");
    GemFireConnectionPoolManager provider =
        (GemFireConnectionPoolManager) ds.getConnectionProvider();
    ConnectionPoolCacheImpl poolCache =
        (ConnectionPoolCacheImpl) provider.getConnectionPoolCache();
    poolCache.getPooledConnectionFromPool();
    Thread.sleep(40000);
    if (!(poolCache.activeCache.isEmpty())) {
      fail("Clean-up on expiration not done");
    }
  } catch (Exception e) {
    fail("Exception occured in testBlockingTimeOut due to " + e);
    e.printStackTrace();
  }
}
项目:lazycat    文件:DataSourceLinkFactory.java   
/**
 * Create a new DataSource instance.
 * 
 * @param obj
 *            The reference object describing the DataSource
 */
@Override
public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment)
        throws NamingException {
    Object result = super.getObjectInstance(obj, name, nameCtx, environment);
    // Can we process this request?
    if (result != null) {
        Reference ref = (Reference) obj;
        RefAddr userAttr = ref.get("username");
        RefAddr passAttr = ref.get("password");
        if (userAttr.getContent() != null && passAttr.getContent() != null) {
            result = wrapDataSource(result, userAttr.getContent().toString(), passAttr.getContent().toString());
        }
    }
    return result;
}
项目:jboss-eap7.1-playground    文件:SimpleWildFlyInitialContextClient.java   
public static void main(String[] args) throws NamingException {
    checkArgs(args);

    Properties p = new Properties();

    p.put(Context.PROVIDER_URL, "http-remoting://localhost:8080");
    InitialContext ic = new WildFlyInitialContext(p);

    Simple proxy = (Simple) ic.lookup("ejb:EAP71-PLAYGROUND-server/ejb/SimpleBean!" + Simple.class.getName());

    try {
        proxy.logText("Simple invocation without security at " + new Date());
        log.info("Expected to work with the default configuration, to get a security failure remote the <local> element from the ApplicationRealm!");
    } catch (Exception e) {
        log.severe("Expected to fail if no <local> configuration in ApplicationRealm, unfortunately no good Exception");
        e.printStackTrace();
    }
}
项目:oscm    文件:APPlatformServiceFactory.java   
/**
 * Retrieves an <code>APPlatformService</code> instance.
 * 
 * @return the service instance
 */
public static APPlatformService getInstance() {
    try {

        Properties p = new Properties();
        p.setProperty (Context.INITIAL_CONTEXT_FACTORY,"org.apache.openejb.client.LocalInitialContextFactory");

        InitialContext context = new InitialContext(p);
        Object lookup = context.lookup(JNDI_NAME);
        if (!APPlatformService.class.isAssignableFrom(lookup.getClass())) {
            throw new IllegalStateException(
                    "Failed to look up APPlatformService. The returned service is not implementing correct interface");
        }
        return (APPlatformService) lookup;
    } catch (NamingException e) {
        logger.error("Service lookup failed: " + JNDI_NAME);
        throw new IllegalStateException(
                "No valid platform service available", e);
    }
}
项目:Byter    文件:JmxConnectionHelper.java   
/**
 * Creates the jmxConnector with passed parameters.
 * @param host host address
 * @param port port of the host
 * @param user username (null possible)
 * @param pass password (null possible)
 * @return connected JMXConnector
 * @throws IOException IOException
 */
public static JMXConnector buildJmxMPConnector(final String host, final int port, final String user, final String pass) throws IOException {
    try {
        final JMXServiceURL serviceURL = new JMXServiceURL("jmxmp", host,port);
        if("null".equals(user) || "null".equals(pass) || user == null || pass == null){
            return JMXConnectorFactory.connect(serviceURL);
        }
        final Map<String, Object> environment = new HashMap<>();
        environment.put("jmx.remote.credentials", new String[]{user,pass});
        environment.put(Context.SECURITY_PRINCIPAL, user);
        environment.put(Context.SECURITY_CREDENTIALS, pass);
        return JMXConnectorFactory.connect(serviceURL,environment);
    } catch (MalformedURLException e) {
        log.log(Level.WARNING, "Malformed ServiceURL in buildJmxConnector");
        return null;
    }
}
项目:lazycat    文件:DefaultInstanceManager.java   
/**
 * Inject resources in specified method.
 *
 * @param context
 *            jndi context to extract value from
 * @param instance
 *            object to inject into
 * @param method
 *            field target for injection
 * @param name
 *            jndi name value is bound under
 * @param clazz
 *            class annotation is defined in
 * @throws IllegalAccessException
 *             if method is inaccessible
 * @throws javax.naming.NamingException
 *             if value is not accessible in naming context
 * @throws java.lang.reflect.InvocationTargetException
 *             if setter call fails
 */
protected static void lookupMethodResource(Context context, Object instance, Method method, String name,
        Class<?> clazz) throws NamingException, IllegalAccessException, InvocationTargetException {

    if (!Introspection.isValidSetter(method)) {
        throw new IllegalArgumentException(sm.getString("defaultInstanceManager.invalidInjection"));
    }

    Object lookedupResource;
    boolean accessibility;

    String normalizedName = normalize(name);

    if ((normalizedName != null) && (normalizedName.length() > 0)) {
        lookedupResource = context.lookup(normalizedName);
    } else {
        lookedupResource = context.lookup(clazz.getName() + "/" + Introspection.getPropertyName(method));
    }

    synchronized (method) {
        accessibility = method.isAccessible();
        method.setAccessible(true);
        method.invoke(instance, lookedupResource);
        method.setAccessible(accessibility);
    }
}
项目:monarch    文件:QueryAndJtaJUnitTest.java   
@Ignore
@Test
public void testFailedIndexUpdateOnJTACommitForPut() throws Exception {
  Person.THROW_ON_INDEX = true;
  AttributesFactory af = new AttributesFactory();
  af.setDataPolicy(DataPolicy.REPLICATE);
  Region region = cache.createRegion("sample", af.create());
  qs.createIndex("foo", IndexType.FUNCTIONAL, "index", "/sample");
  Context ctx = cache.getJNDIContext();
  UserTransaction utx = (UserTransaction) ctx.lookup("java:/UserTransaction");
  Integer x = new Integer(0);
  utx.begin();
  region.create(x, new Person("xyz", 45));
  try {
    utx.commit();
    fail("Commit should have thrown an exception because the index update threw");
  } catch (Exception e) {
    // this is desired
  }
}
项目:apache-tomcat-7.0.73-with-comment    文件:NamingContext.java   
/**
 * Retrieves the parser associated with the named context. In a 
 * federation of namespaces, different naming systems will parse names 
 * differently. This method allows an application to get a parser for 
 * parsing names into their atomic components using the naming convention 
 * of a particular naming system. Within any single naming system, 
 * NameParser objects returned by this method must be equal (using the 
 * equals() test).
 * 
 * @param name the name of the context from which to get the parser
 * @return a name parser that can parse compound names into their atomic 
 * components
 * @exception NamingException if a naming exception is encountered
 */
@Override
public NameParser getNameParser(Name name)
    throws NamingException {

    while ((!name.isEmpty()) && (name.get(0).length() == 0))
        name = name.getSuffix(1);
    if (name.isEmpty())
        return nameParser;

    if (name.size() > 1) {
        Object obj = bindings.get(name.get(0));
        if (obj instanceof Context) {
            return ((Context) obj).getNameParser(name.getSuffix(1));
        } else {
            throw new NotContextException
                (sm.getString("namingContext.contextExpected"));
        }
    }

    return nameParser;

}
项目:lams    文件:NamingContext.java   
/**
 * Enumerates the names bound in the named context, along with the class 
 * names of objects bound to them. The contents of any subcontexts are 
 * not included.
 * <p>
 * If a binding is added to or removed from this context, its effect on 
 * an enumeration previously returned is undefined.
 * 
 * @param name the name of the context to list
 * @return an enumeration of the names and class names of the bindings in 
 * this context. Each element of the enumeration is of type NameClassPair.
 * @exception NamingException if a naming exception is encountered
 */
public NamingEnumeration list(Name name)
    throws NamingException {
    // Removing empty parts
    while ((!name.isEmpty()) && (name.get(0).length() == 0))
        name = name.getSuffix(1);
    if (name.isEmpty()) {
        return new NamingContextEnumeration(bindings.values().iterator());
    }

    NamingEntry entry = (NamingEntry) bindings.get(name.get(0));

    if (entry == null) {
        throw new NameNotFoundException
            (sm.getString("namingContext.nameNotBound", name.get(0)));
    }

    if (entry.type != NamingEntry.CONTEXT) {
        throw new NamingException
            (sm.getString("namingContext.contextExpected"));
    }
    return ((Context) entry.value).list(name.getSuffix(1));
}
项目:monarch    文件:QueryAndJtaJUnitTest.java   
@Test
public void testIndexOnCommitForInvalidate() throws Exception {
  AttributesFactory af = new AttributesFactory();
  af.setDataPolicy(DataPolicy.REPLICATE);
  Region region = cache.createRegion("sample", af.create());
  qs.createIndex("foo", IndexType.FUNCTIONAL, "age", "/sample");
  Context ctx = cache.getJNDIContext();
  UserTransaction utx = (UserTransaction) ctx.lookup("java:/UserTransaction");
  Integer x = new Integer(0);
  utx.begin();
  region.create(x, new Person("xyz", 45));
  utx.commit();
  Query q = qs.newQuery("select * from /sample where age < 50");
  assertEquals(1, ((SelectResults) q.execute()).size());
  Person dsample = (Person) CopyHelper.copy(region.get(x));
  dsample.setAge(55);
  utx.begin();
  region.invalidate(x);
  utx.commit();
  CacheUtils.log(((Person) region.get(x)));
  assertEquals(0, ((SelectResults) q.execute()).size());
}
项目:oscm    文件:OrganizationSettingQueryTest.java   
@Test
public void verifyResultMapping_CheckProperties() throws Exception {
    addEntry(SettingType.LDAP_URL, "url", "url");
    addEntry(SettingType.LDAP_PRINCIPAL, "principal", "principal");
    addEntry(SettingType.LDAP_CREDENTIALS, "credentials", "credentials");
    addEntry(SettingType.LDAP_ATTR_REFERRAL, "ignore", "ignore");
    query.execute();
    Properties properties = query.getProperties();
    assertEquals("url", properties.get(Context.PROVIDER_URL));
    assertEquals("com.sun.jndi.ldap.LdapCtxFactory",
            properties.get(Context.INITIAL_CONTEXT_FACTORY));
    assertEquals("principal", properties.get(Context.SECURITY_PRINCIPAL));
    assertEquals("credentials",
            properties.get(Context.SECURITY_CREDENTIALS));
    assertEquals("ignore", properties.get(Context.REFERRAL));
}
项目:OpenVertretung    文件:DataSourceTest.java   
/**
 * This method is separated from the rest of the example since you normally
 * would NOT register a JDBC driver in your code. It would likely be
 * configered into your naming and directory service using some GUI.
 * 
 * @throws Exception
 *             if an error occurs
 */
private void registerDataSource() throws Exception {
    this.tempDir = File.createTempFile("jnditest", null);
    this.tempDir.delete();
    this.tempDir.mkdir();
    this.tempDir.deleteOnExit();

    com.mysql.jdbc.jdbc2.optional.MysqlDataSource ds;
    Hashtable<String, String> env = new Hashtable<String, String>();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");
    env.put(Context.PROVIDER_URL, this.tempDir.toURI().toString());
    this.ctx = new InitialContext(env);
    assertTrue("Naming Context not created", this.ctx != null);
    ds = new com.mysql.jdbc.jdbc2.optional.MysqlDataSource();
    ds.setUrl(dbUrl); // from BaseTestCase
    this.ctx.bind("_test", ds);
}
项目:lucene-demo    文件:JdbcUtil.java   
/**
 * 获取连接,使用数据库连接池
 * @param jndi 配置在tomcat的context.xml里面的东西
 * @return 创建的连接对象
 */
public Connection getConnection(String jndi)
{
    try
    {
        log.debug("开始尝试连接数据库!");
        Context context=new InitialContext();
        DataSource dataSource=(DataSource)context.lookup("java:comp/env/"+jndi);
        con=dataSource.getConnection();
        log.debug("连接成功!");
    }
    catch (Exception e)
    {
        log.error("连接数据库失败!", e);
    }
    return con;
}
项目:tomcat7    文件:TestNamingContext.java   
@Test
public void testBug53465() throws Exception {
    Tomcat tomcat = getTomcatInstance();
    tomcat.enableNaming();

    File appDir =
        new File("test/webapp-3.0");
    // app dir is relative to server home
    org.apache.catalina.Context ctxt =
            tomcat.addWebapp(null, "/test", appDir.getAbsolutePath());

    tomcat.start();

    ByteChunk bc = new ByteChunk();
    int rc = getUrl("http://localhost:" + getPort() +
            "/test/bug5nnnn/bug53465.jsp", bc, null);

    Assert.assertEquals(HttpServletResponse.SC_OK, rc);
    Assert.assertTrue(bc.toString().contains("<p>10</p>"));

    ContextEnvironment ce =
            ctxt.getNamingResources().findEnvironment("bug53465");
    Assert.assertEquals("Bug53465MappedName", ce.getProperty("mappedName"));
}
项目:cli-java    文件:AocConnectionManager.java   
protected void setInitialContext(String userConnectionFactory) {
    properties = new Properties();
    try {
        String jndiFilePath;
        if ((jndiFilePath = System.getProperty(EXTERNAL_JNDI_PROPERTY)) != null) {
            // load property file from an absolute path to the file
            try (FileInputStream stream = new FileInputStream(jndiFilePath)) {
                properties.load(stream);
            }
        } else {
            ClassLoader classloader = Thread.currentThread().getContextClassLoader();
            String JNDIFile = "JAMQ6JNDI.properties";
            LOG.trace("Using " + JNDIFile);
            // fallback to use resources/ArtemisJNDI.properties file
            properties.load(classloader.getResourceAsStream(JNDIFile));
            LOG.trace(properties.toString());
        }
        LOG.trace(userConnectionFactory);
        if (userConnectionFactory.contains("://")) {
            // override connectionFactory by this option in jndi/properties
            properties.setProperty(Context.PROVIDER_URL, userConnectionFactory);
            properties.setProperty("connectionFactory." + amqConnectionFactoryJNDI, userConnectionFactory);
        }
        initialContext = new InitialContext(properties);
    } catch (NamingException | IOException e) {
        e.printStackTrace();
    }
}
项目:ipack    文件:LDAPStoreHelper.java   
private DirContext connectLDAP() throws NamingException
{
    Properties props = new Properties();
    props.setProperty(Context.INITIAL_CONTEXT_FACTORY, LDAP_PROVIDER);
    props.setProperty(Context.BATCHSIZE, "0");

    props.setProperty(Context.PROVIDER_URL, params.getLdapURL());
    props.setProperty(Context.URL_PKG_PREFIXES, URL_CONTEXT_PREFIX);
    props.setProperty(Context.REFERRAL, REFERRALS_IGNORE);
    props.setProperty(Context.SECURITY_AUTHENTICATION,
        SEARCH_SECURITY_LEVEL);

    DirContext ctx = new InitialDirContext(props);
    return ctx;
}
项目:lams    文件:JndiObjectFactoryBean.java   
@Override
public Object invoke(MethodInvocation invocation) throws Throwable {
    Context ctx = (isEligible(invocation.getMethod()) ? this.jndiTemplate.getContext() : null);
    try {
        return invocation.proceed();
    }
    finally {
        this.jndiTemplate.releaseContext(ctx);
    }
}
项目:lazycat    文件:NamingContext.java   
/**
 * Unbinds the named object. Removes the terminal atomic name in name from
 * the target context--that named by all but the terminal atomic part of
 * name.
 * <p>
 * This method is idempotent. It succeeds even if the terminal atomic name
 * is not bound in the target context, but throws NameNotFoundException if
 * any of the intermediate contexts do not exist.
 * 
 * @param name
 *            the name to bind; may not be empty
 * @exception NameNotFoundException
 *                if an intermediate context does not exist
 * @exception NamingException
 *                if a naming exception is encountered
 */
@Override
public void unbind(Name name) throws NamingException {

    if (!checkWritable()) {
        return;
    }

    while ((!name.isEmpty()) && (name.get(0).length() == 0))
        name = name.getSuffix(1);
    if (name.isEmpty())
        throw new NamingException(sm.getString("namingContext.invalidName"));

    NamingEntry entry = bindings.get(name.get(0));

    if (entry == null) {
        throw new NameNotFoundException(sm.getString("namingContext.nameNotBound", name, name.get(0)));
    }

    if (name.size() > 1) {
        if (entry.type == NamingEntry.CONTEXT) {
            ((Context) entry.value).unbind(name.getSuffix(1));
        } else {
            throw new NamingException(sm.getString("namingContext.contextExpected"));
        }
    } else {
        bindings.remove(name.get(0));
    }

}
项目:WordnetLoom    文件:EJBConnectionProviderService.java   
public <E> E lookupForService(Class<E> remoteClass) {
    E bean = null;
    try {
        Context context = getInitialContext();
        String lookupName = getLookupName(remoteClass, "Bean");
        bean = (E) context.lookup(lookupName);
    } catch (Exception ex) {
        logger().error("Service Lookup error:", ex);
    }
    return bean;
}
项目:lams    文件:TransactionRef.java   
/**
 * Retrieves the class name of the factory of the object to which this 
 * reference refers.
 */
public String getFactoryClassName() {
    String factory = super.getFactoryClassName();
    if (factory != null) {
        return factory;
    } else {
        factory = System.getProperty(Context.OBJECT_FACTORIES);
        if (factory != null) {
            return null;
        } else {
            return DEFAULT_FACTORY;
        }
    }
}
项目:jerrydog    文件:GlobalResourcesLifecycleListener.java   
/**
 * Create the MBeans for the interesting global JNDI resources in
 * the specified naming context.
 *
 * @param prefix Prefix for complete object name paths
 * @param context Context to be scanned
 *
 * @exception NamingException if a JNDI exception occurs
 */
protected void createMBeans(String prefix, Context context)
    throws NamingException {

    if (debug >= 1) {
        log("Creating MBeans for Global JNDI Resources in Context '" +
            prefix + "'");
    }

    NamingEnumeration bindings = context.listBindings("");
    while (bindings.hasMore()) {
        Binding binding = (Binding) bindings.next();
        String name = prefix + binding.getName();
        Object value = context.lookup(binding.getName());
        if (debug >= 2) {
            log("Checking resource " + name);
        }
        if (value instanceof Context) {
            createMBeans(name + "/", (Context) value);
        } else if (value instanceof UserDatabase) {
            try {
                createMBeans(name, (UserDatabase) value);
            } catch (Exception e) {
                log("Exception creating UserDatabase MBeans for " + name,
                    e);
            }
        }
    }

}
项目:unitimes    文件:LocalContext.java   
@Override
public void rename(Name oldname, Name newname) throws NamingException {
    if (oldname.isEmpty() || newname.isEmpty())
        throw new InvalidNameException("Cannot rename empty name");

    Name oldnm = getMyComponents(oldname);
    Name newnm = getMyComponents(newname);

    if (oldnm.size() != newnm.size())
        throw new OperationNotSupportedException("Do not support rename across different contexts");

    String oldatom = oldnm.get(0);
    String newatom = newnm.get(0);

    if (oldnm.size() == 1) {
        if (iBindings.get(newatom) != null)
            throw new NameAlreadyBoundException(newname.toString() + " is already bound");

        Object oldBinding = iBindings.remove(oldatom);
        if (oldBinding == null)
            throw new NameNotFoundException(oldname.toString() + " not bound");

        iBindings.put(newatom, oldBinding);
    } else {
        if (!oldatom.equals(newatom))
            throw new OperationNotSupportedException("Do not support rename across different contexts");

        Object inter = iBindings.get(oldatom);

        if (!(inter instanceof Context))
            throw new NotContextException(oldatom + " does not name a context");

        ((Context) inter).rename(oldnm.getSuffix(1), newnm.getSuffix(1));
    }
}
项目:lams    文件:JndiTemplate.java   
/**
 * Rebind the given object to the current JNDI context, using the given name.
 * Overwrites any existing binding.
 * @param name the JNDI name of the object
 * @param object the object to rebind
 * @throws NamingException thrown by JNDI
 */
public void rebind(final String name, final Object object) throws NamingException {
    if (logger.isDebugEnabled()) {
        logger.debug("Rebinding JNDI object with name [" + name + "]");
    }
    execute(new JndiCallback<Object>() {
        @Override
        public Object doInContext(Context ctx) throws NamingException {
            ctx.rebind(name, object);
            return null;
        }
    });
}
项目:parabuild-ci    文件:JNDIAuthenticator.java   
/**
 * Create our directory context configuration.
 *
 * @return java.util.Hashtable the configuration for the directory context.
 */
private Hashtable makeDirectoryContextEnvironment() {
  final Hashtable result = new Hashtable(11);
  putIfNotBlank(result, Context.INITIAL_CONTEXT_FACTORY, contextFactory);
  putIfNotBlank(result, Context.SECURITY_PRINCIPAL, connectionPrincipal);
  putIfNotBlank(result, Context.SECURITY_CREDENTIALS, connectionCredentials);
  putIfNotBlank(result, Context.PROVIDER_URL, connectionURL);
  putIfNotBlank(result, Context.SECURITY_AUTHENTICATION, connectionSecurityLevel);
  putIfNotBlank(result, Context.SECURITY_PROTOCOL, protocol);
  putIfNotBlank(result, Context.REFERRAL, referrals);
  putIfNotBlank(result, JAVA_NAMING_DEREF_ALIASES, derefAliases);
  putIfNotBlank(result, JAVA_NAMING_LDAP_VERSION, ldapVersion);
  return result;
}
项目:message-broker    文件:ClientHelper.java   
public InitialContextBuilder(String username, String password, String brokerHost, String port) {
    this.username = username;
    this.password = password;
    this.brokerHost = brokerHost;
    this.port = port;
    contextProperties = new Properties();
    contextProperties.put(Context.INITIAL_CONTEXT_FACTORY, ANDES_INITIAL_CONTEXT_FACTORY);
    String connectionString = getBrokerConnectionString();
    contextProperties.put(CONNECTION_FACTORY_PREFIX + CONNECTION_FACTORY, connectionString);
}
项目:Equella    文件:LDAP.java   
private DirContext _bind(String username, String password, boolean canBeAnonymous, boolean pool)
    throws NamingException
{
    if( !canBeAnonymous && password.length() == 0 )
    {
        throw new BadCredentialsException("Couldn't authenticate with LDAP");
    }

    // We'll ignore Sonar's advice to replace Hashtable with java.util.Map
    Hashtable<String, String> map = new Hashtable<String, String>(env); // NOSONAR
    map.put("com.sun.jndi.ldap.connect.pool", Boolean.toString(pool));
    map.put(Context.SECURITY_PRINCIPAL, username);
    map.put(Context.SECURITY_CREDENTIALS, password);
    map.put(Context.SECURITY_AUTHENTICATION, "simple");

    ClassLoader oldLoader = null;
    try
    {
        if( blind )
        {
            oldLoader = Thread.currentThread().getContextClassLoader();
            Thread.currentThread().setContextClassLoader(LDAP.class.getClassLoader());
        }
        return new InitialDirContext(map);
    }
    catch( AuthenticationException e )
    {
        throw new BadCredentialsException("Couldn't authenticate with LDAP");
    }
    finally
    {
        if( oldLoader != null )
        {
            Thread.currentThread().setContextClassLoader(oldLoader);
        }
    }
}